@aura3d/cli 3.0.1 → 4.0.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 (376) hide show
  1. package/README.md +2 -2
  2. package/dist/admission/artDirection.d.ts +28 -0
  3. package/dist/admission/artDirection.d.ts.map +1 -0
  4. package/dist/admission/artDirection.js +47 -0
  5. package/dist/admission/artDirection.js.map +1 -0
  6. package/dist/admission/audio.d.ts +19 -0
  7. package/dist/admission/audio.d.ts.map +1 -0
  8. package/dist/admission/audio.js +31 -0
  9. package/dist/admission/audio.js.map +1 -0
  10. package/dist/admission/builder-patterns.d.ts +25 -0
  11. package/dist/admission/builder-patterns.d.ts.map +1 -0
  12. package/dist/admission/builder-patterns.js +40 -0
  13. package/dist/admission/builder-patterns.js.map +1 -0
  14. package/dist/admission/gates.d.ts +136 -0
  15. package/dist/admission/gates.d.ts.map +1 -0
  16. package/dist/admission/gates.js +335 -0
  17. package/dist/admission/gates.js.map +1 -0
  18. package/dist/admission/glb.d.ts +64 -0
  19. package/dist/admission/glb.d.ts.map +1 -0
  20. package/dist/admission/glb.js +128 -0
  21. package/dist/admission/glb.js.map +1 -0
  22. package/dist/admission/index.d.ts +8 -0
  23. package/dist/admission/index.d.ts.map +1 -0
  24. package/dist/admission/index.js +8 -0
  25. package/dist/admission/index.js.map +1 -0
  26. package/dist/admission/profiles.d.ts +52 -0
  27. package/dist/admission/profiles.d.ts.map +1 -0
  28. package/dist/admission/profiles.js +91 -0
  29. package/dist/admission/profiles.js.map +1 -0
  30. package/dist/admission/qrFlags.d.ts +12 -0
  31. package/dist/admission/qrFlags.d.ts.map +1 -0
  32. package/dist/admission/qrFlags.js +48 -0
  33. package/dist/admission/qrFlags.js.map +1 -0
  34. package/dist/admission/routeGates.d.ts +36 -0
  35. package/dist/admission/routeGates.d.ts.map +1 -0
  36. package/dist/admission/routeGates.js +144 -0
  37. package/dist/admission/routeGates.js.map +1 -0
  38. package/dist/admission/texel.d.ts +50 -0
  39. package/dist/admission/texel.d.ts.map +1 -0
  40. package/dist/admission/texel.js +177 -0
  41. package/dist/admission/texel.js.map +1 -0
  42. package/dist/admission/textureStats.d.ts +45 -0
  43. package/dist/admission/textureStats.d.ts.map +1 -0
  44. package/dist/admission/textureStats.js +201 -0
  45. package/dist/admission/textureStats.js.map +1 -0
  46. package/dist/animation-asset-validator.d.ts +44 -0
  47. package/dist/animation-asset-validator.d.ts.map +1 -1
  48. package/dist/animation-asset-validator.js +80 -1
  49. package/dist/animation-asset-validator.js.map +1 -1
  50. package/dist/asset-core-types.d.ts +99 -4
  51. package/dist/asset-core-types.d.ts.map +1 -1
  52. package/dist/asset-inspection-types.d.ts +8 -0
  53. package/dist/asset-inspection-types.d.ts.map +1 -1
  54. package/dist/asset-manifest.d.ts +1 -0
  55. package/dist/asset-manifest.d.ts.map +1 -1
  56. package/dist/asset-manifest.js +13 -4
  57. package/dist/asset-manifest.js.map +1 -1
  58. package/dist/asset-route-typegen.d.ts +37 -0
  59. package/dist/asset-route-typegen.d.ts.map +1 -0
  60. package/dist/asset-route-typegen.js +179 -0
  61. package/dist/asset-route-typegen.js.map +1 -0
  62. package/dist/cli-help.d.ts +1 -1
  63. package/dist/cli-help.d.ts.map +1 -1
  64. package/dist/cli-help.js +9 -4
  65. package/dist/cli-help.js.map +1 -1
  66. package/dist/cli-options.d.ts +7 -0
  67. package/dist/cli-options.d.ts.map +1 -1
  68. package/dist/cli-options.js +33 -2
  69. package/dist/cli-options.js.map +1 -1
  70. package/dist/cli.d.ts +1 -1
  71. package/dist/cli.d.ts.map +1 -1
  72. package/dist/cli.js +126 -11
  73. package/dist/cli.js.map +1 -1
  74. package/dist/codemods/engine-entry-imports.d.ts +22 -0
  75. package/dist/codemods/engine-entry-imports.d.ts.map +1 -0
  76. package/dist/codemods/engine-entry-imports.js +159 -0
  77. package/dist/codemods/engine-entry-imports.js.map +1 -0
  78. package/dist/codemods/lean-imports.d.ts +40 -0
  79. package/dist/codemods/lean-imports.d.ts.map +1 -0
  80. package/dist/codemods/lean-imports.js +175 -0
  81. package/dist/codemods/lean-imports.js.map +1 -0
  82. package/dist/codemods/renderer-imports.d.ts +36 -0
  83. package/dist/codemods/renderer-imports.d.ts.map +1 -0
  84. package/dist/codemods/renderer-imports.js +364 -0
  85. package/dist/codemods/renderer-imports.js.map +1 -0
  86. package/dist/codemods/renderer-mode.d.ts +38 -0
  87. package/dist/codemods/renderer-mode.d.ts.map +1 -0
  88. package/dist/codemods/renderer-mode.js +130 -0
  89. package/dist/codemods/renderer-mode.js.map +1 -0
  90. package/dist/commands/prd01/index.d.ts +8 -0
  91. package/dist/commands/prd01/index.d.ts.map +1 -0
  92. package/dist/commands/prd01/index.js +39 -0
  93. package/dist/commands/prd01/index.js.map +1 -0
  94. package/dist/commands/prd02/environmentsBake.d.ts +6 -0
  95. package/dist/commands/prd02/environmentsBake.d.ts.map +1 -0
  96. package/dist/commands/prd02/environmentsBake.js +174 -0
  97. package/dist/commands/prd02/environmentsBake.js.map +1 -0
  98. package/dist/commands/prd02/index.d.ts +2 -0
  99. package/dist/commands/prd02/index.d.ts.map +1 -0
  100. package/dist/commands/prd02/index.js +26 -0
  101. package/dist/commands/prd02/index.js.map +1 -0
  102. package/dist/commands/prd02/migrateLighting.d.ts +17 -0
  103. package/dist/commands/prd02/migrateLighting.d.ts.map +1 -0
  104. package/dist/commands/prd02/migrateLighting.js +86 -0
  105. package/dist/commands/prd02/migrateLighting.js.map +1 -0
  106. package/dist/commands/prd02/migrateLightingSweep.d.ts +20 -0
  107. package/dist/commands/prd02/migrateLightingSweep.d.ts.map +1 -0
  108. package/dist/commands/prd02/migrateLightingSweep.js +105 -0
  109. package/dist/commands/prd02/migrateLightingSweep.js.map +1 -0
  110. package/dist/commands/prd03/index.d.ts +7 -0
  111. package/dist/commands/prd03/index.d.ts.map +1 -0
  112. package/dist/commands/prd03/index.js +9 -0
  113. package/dist/commands/prd03/index.js.map +1 -0
  114. package/dist/commands/prd04/index.d.ts +10 -0
  115. package/dist/commands/prd04/index.d.ts.map +1 -0
  116. package/dist/commands/prd04/index.js +10 -0
  117. package/dist/commands/prd04/index.js.map +1 -0
  118. package/dist/commands/prd04/modelTintReport.d.ts +16 -0
  119. package/dist/commands/prd04/modelTintReport.d.ts.map +1 -0
  120. package/dist/commands/prd04/modelTintReport.js +114 -0
  121. package/dist/commands/prd04/modelTintReport.js.map +1 -0
  122. package/dist/commands/prd04/pinEmissiveDefaults.d.ts +3 -0
  123. package/dist/commands/prd04/pinEmissiveDefaults.d.ts.map +1 -0
  124. package/dist/commands/prd04/pinEmissiveDefaults.js +36 -0
  125. package/dist/commands/prd04/pinEmissiveDefaults.js.map +1 -0
  126. package/dist/commands/prd05/admit.d.ts +54 -0
  127. package/dist/commands/prd05/admit.d.ts.map +1 -0
  128. package/dist/commands/prd05/admit.js +153 -0
  129. package/dist/commands/prd05/admit.js.map +1 -0
  130. package/dist/commands/prd05/codemods/assetsRouteModules.d.ts +3 -0
  131. package/dist/commands/prd05/codemods/assetsRouteModules.d.ts.map +1 -0
  132. package/dist/commands/prd05/codemods/assetsRouteModules.js +92 -0
  133. package/dist/commands/prd05/codemods/assetsRouteModules.js.map +1 -0
  134. package/dist/commands/prd05/index.d.ts +9 -0
  135. package/dist/commands/prd05/index.d.ts.map +1 -0
  136. package/dist/commands/prd05/index.js +171 -0
  137. package/dist/commands/prd05/index.js.map +1 -0
  138. package/dist/commands/prd05/library.d.ts +23 -0
  139. package/dist/commands/prd05/library.d.ts.map +1 -0
  140. package/dist/commands/prd05/library.js +245 -0
  141. package/dist/commands/prd05/library.js.map +1 -0
  142. package/dist/commands/prd05/lookdev.d.ts +14 -0
  143. package/dist/commands/prd05/lookdev.d.ts.map +1 -0
  144. package/dist/commands/prd05/lookdev.js +68 -0
  145. package/dist/commands/prd05/lookdev.js.map +1 -0
  146. package/dist/commands/prd05/optimize.d.ts +16 -0
  147. package/dist/commands/prd05/optimize.d.ts.map +1 -0
  148. package/dist/commands/prd05/optimize.js +55 -0
  149. package/dist/commands/prd05/optimize.js.map +1 -0
  150. package/dist/commands/prd05/prune.d.ts +26 -0
  151. package/dist/commands/prd05/prune.d.ts.map +1 -0
  152. package/dist/commands/prd05/prune.js +104 -0
  153. package/dist/commands/prd05/prune.js.map +1 -0
  154. package/dist/commands/prd05/review.d.ts +24 -0
  155. package/dist/commands/prd05/review.d.ts.map +1 -0
  156. package/dist/commands/prd05/review.js +40 -0
  157. package/dist/commands/prd05/review.js.map +1 -0
  158. package/dist/commands/prd06/index.d.ts +6 -0
  159. package/dist/commands/prd06/index.d.ts.map +1 -0
  160. package/dist/commands/prd06/index.js +86 -0
  161. package/dist/commands/prd06/index.js.map +1 -0
  162. package/dist/commands/prd06/inspectAnimationClips.d.ts +86 -0
  163. package/dist/commands/prd06/inspectAnimationClips.d.ts.map +1 -0
  164. package/dist/commands/prd06/inspectAnimationClips.js +168 -0
  165. package/dist/commands/prd06/inspectAnimationClips.js.map +1 -0
  166. package/dist/commands/prd06/validateHero.d.ts +18 -0
  167. package/dist/commands/prd06/validateHero.d.ts.map +1 -0
  168. package/dist/commands/prd06/validateHero.js +91 -0
  169. package/dist/commands/prd06/validateHero.js.map +1 -0
  170. package/dist/commands/prd07/codemods.d.ts +28 -0
  171. package/dist/commands/prd07/codemods.d.ts.map +1 -0
  172. package/dist/commands/prd07/codemods.js +155 -0
  173. package/dist/commands/prd07/codemods.js.map +1 -0
  174. package/dist/commands/prd07/index.d.ts +2 -0
  175. package/dist/commands/prd07/index.d.ts.map +1 -0
  176. package/dist/commands/prd07/index.js +151 -0
  177. package/dist/commands/prd07/index.js.map +1 -0
  178. package/dist/commands/prd08/feelLint.d.ts +13 -0
  179. package/dist/commands/prd08/feelLint.d.ts.map +1 -0
  180. package/dist/commands/prd08/feelLint.js +32 -0
  181. package/dist/commands/prd08/feelLint.js.map +1 -0
  182. package/dist/commands/prd08/index.d.ts +2 -0
  183. package/dist/commands/prd08/index.d.ts.map +1 -0
  184. package/dist/commands/prd08/index.js +16 -0
  185. package/dist/commands/prd08/index.js.map +1 -0
  186. package/dist/commands/prd08/motionReport.d.ts +94 -0
  187. package/dist/commands/prd08/motionReport.d.ts.map +1 -0
  188. package/dist/commands/prd08/motionReport.js +197 -0
  189. package/dist/commands/prd08/motionReport.js.map +1 -0
  190. package/dist/commands/prd09/codemods/audio-wrapper.d.ts +9 -0
  191. package/dist/commands/prd09/codemods/audio-wrapper.d.ts.map +1 -0
  192. package/dist/commands/prd09/codemods/audio-wrapper.js +30 -0
  193. package/dist/commands/prd09/codemods/audio-wrapper.js.map +1 -0
  194. package/dist/commands/prd09/codemods/capture-branches.d.ts +10 -0
  195. package/dist/commands/prd09/codemods/capture-branches.d.ts.map +1 -0
  196. package/dist/commands/prd09/codemods/capture-branches.js +54 -0
  197. package/dist/commands/prd09/codemods/capture-branches.js.map +1 -0
  198. package/dist/commands/prd09/codemods/evidence-globals.d.ts +8 -0
  199. package/dist/commands/prd09/codemods/evidence-globals.d.ts.map +1 -0
  200. package/dist/commands/prd09/codemods/evidence-globals.js +19 -0
  201. package/dist/commands/prd09/codemods/evidence-globals.js.map +1 -0
  202. package/dist/commands/prd09/codemods/perf-script.d.ts +8 -0
  203. package/dist/commands/prd09/codemods/perf-script.d.ts.map +1 -0
  204. package/dist/commands/prd09/codemods/perf-script.js +24 -0
  205. package/dist/commands/prd09/codemods/perf-script.js.map +1 -0
  206. package/dist/commands/prd09/index.d.ts +8 -0
  207. package/dist/commands/prd09/index.d.ts.map +1 -0
  208. package/dist/commands/prd09/index.js +19 -0
  209. package/dist/commands/prd09/index.js.map +1 -0
  210. package/dist/commands/prd09/perf-report.d.ts +56 -0
  211. package/dist/commands/prd09/perf-report.d.ts.map +1 -0
  212. package/dist/commands/prd09/perf-report.js +118 -0
  213. package/dist/commands/prd09/perf-report.js.map +1 -0
  214. package/dist/commands/prd09/sfx-admit.d.ts +18 -0
  215. package/dist/commands/prd09/sfx-admit.d.ts.map +1 -0
  216. package/dist/commands/prd09/sfx-admit.js +120 -0
  217. package/dist/commands/prd09/sfx-admit.js.map +1 -0
  218. package/dist/commands/prd10/index.d.ts +2 -0
  219. package/dist/commands/prd10/index.d.ts.map +1 -0
  220. package/dist/commands/prd10/index.js +109 -0
  221. package/dist/commands/prd10/index.js.map +1 -0
  222. package/dist/commands/prd11/batchOptout.d.ts +35 -0
  223. package/dist/commands/prd11/batchOptout.d.ts.map +1 -0
  224. package/dist/commands/prd11/batchOptout.js +155 -0
  225. package/dist/commands/prd11/batchOptout.js.map +1 -0
  226. package/dist/commands/prd11/index.d.ts +2 -0
  227. package/dist/commands/prd11/index.d.ts.map +1 -0
  228. package/dist/commands/prd11/index.js +13 -0
  229. package/dist/commands/prd11/index.js.map +1 -0
  230. package/dist/commands/prd11/perfGate.d.ts +15 -0
  231. package/dist/commands/prd11/perfGate.d.ts.map +1 -0
  232. package/dist/commands/prd11/perfGate.js +98 -0
  233. package/dist/commands/prd11/perfGate.js.map +1 -0
  234. package/dist/commands/prd13/index.d.ts +15 -0
  235. package/dist/commands/prd13/index.d.ts.map +1 -0
  236. package/dist/commands/prd13/index.js +26 -0
  237. package/dist/commands/prd13/index.js.map +1 -0
  238. package/dist/commands/prd13/run.d.ts +10 -0
  239. package/dist/commands/prd13/run.d.ts.map +1 -0
  240. package/dist/commands/prd13/run.js +29 -0
  241. package/dist/commands/prd13/run.js.map +1 -0
  242. package/dist/commands/prd14/index.d.ts +6 -0
  243. package/dist/commands/prd14/index.d.ts.map +1 -0
  244. package/dist/commands/prd14/index.js +6 -0
  245. package/dist/commands/prd14/index.js.map +1 -0
  246. package/dist/commands/prd15/index.d.ts +8 -0
  247. package/dist/commands/prd15/index.d.ts.map +1 -0
  248. package/dist/commands/prd15/index.js +152 -0
  249. package/dist/commands/prd15/index.js.map +1 -0
  250. package/dist/commands/registry.d.ts +19 -0
  251. package/dist/commands/registry.d.ts.map +1 -0
  252. package/dist/commands/registry.js +19 -0
  253. package/dist/commands/registry.js.map +1 -0
  254. package/dist/contracts/assetManifest.d.ts +80 -0
  255. package/dist/contracts/assetManifest.d.ts.map +1 -0
  256. package/dist/contracts/assetManifest.js +9 -0
  257. package/dist/contracts/assetManifest.js.map +1 -0
  258. package/dist/contracts/commands.d.ts +53 -0
  259. package/dist/contracts/commands.d.ts.map +1 -0
  260. package/dist/contracts/commands.js +37 -0
  261. package/dist/contracts/commands.js.map +1 -0
  262. package/dist/index.d.ts +17 -1
  263. package/dist/index.d.ts.map +1 -1
  264. package/dist/index.js +271 -71
  265. package/dist/index.js.map +1 -1
  266. package/dist/library-manifest.d.ts +86 -0
  267. package/dist/library-manifest.d.ts.map +1 -0
  268. package/dist/library-manifest.js +95 -0
  269. package/dist/library-manifest.js.map +1 -0
  270. package/dist/look/capture.d.ts +51 -0
  271. package/dist/look/capture.d.ts.map +1 -0
  272. package/dist/look/capture.js +229 -0
  273. package/dist/look/capture.js.map +1 -0
  274. package/dist/look/judge.d.ts +24 -0
  275. package/dist/look/judge.d.ts.map +1 -0
  276. package/dist/look/judge.js +151 -0
  277. package/dist/look/judge.js.map +1 -0
  278. package/dist/look/lint-static.d.ts +45 -0
  279. package/dist/look/lint-static.d.ts.map +1 -0
  280. package/dist/look/lint-static.js +241 -0
  281. package/dist/look/lint-static.js.map +1 -0
  282. package/dist/look/rubric.d.ts +70 -0
  283. package/dist/look/rubric.d.ts.map +1 -0
  284. package/dist/look/rubric.js +169 -0
  285. package/dist/look/rubric.js.map +1 -0
  286. package/dist/meshy/import.d.ts +7 -1
  287. package/dist/meshy/import.d.ts.map +1 -1
  288. package/dist/meshy/import.js +80 -6
  289. package/dist/meshy/import.js.map +1 -1
  290. package/dist/migrate-three/CompatibilityWarnings.d.ts +6 -0
  291. package/dist/migrate-three/CompatibilityWarnings.d.ts.map +1 -0
  292. package/dist/migrate-three/CompatibilityWarnings.js +24 -0
  293. package/dist/migrate-three/CompatibilityWarnings.js.map +1 -0
  294. package/dist/migrate-three/ImportMap.d.ts +19 -0
  295. package/dist/migrate-three/ImportMap.d.ts.map +1 -0
  296. package/dist/migrate-three/ImportMap.js +35 -0
  297. package/dist/migrate-three/ImportMap.js.map +1 -0
  298. package/dist/migrate-three/R3fMigration.d.ts +32 -0
  299. package/dist/migrate-three/R3fMigration.d.ts.map +1 -0
  300. package/dist/migrate-three/R3fMigration.js +70 -0
  301. package/dist/migrate-three/R3fMigration.js.map +1 -0
  302. package/dist/migrate-three/ThreeToA3DAdapter.d.ts +8 -0
  303. package/dist/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -0
  304. package/dist/migrate-three/ThreeToA3DAdapter.js +20 -0
  305. package/dist/migrate-three/ThreeToA3DAdapter.js.map +1 -0
  306. package/dist/migrate-three/emit.d.ts +21 -0
  307. package/dist/migrate-three/emit.d.ts.map +1 -0
  308. package/dist/migrate-three/emit.js +117 -0
  309. package/dist/migrate-three/emit.js.map +1 -0
  310. package/dist/migrate-three/mappings.d.ts +21 -0
  311. package/dist/migrate-three/mappings.d.ts.map +1 -0
  312. package/dist/migrate-three/mappings.js +42 -0
  313. package/dist/migrate-three/mappings.js.map +1 -0
  314. package/dist/migrate-three/parse.d.ts +20 -0
  315. package/dist/migrate-three/parse.d.ts.map +1 -0
  316. package/dist/migrate-three/parse.js +56 -0
  317. package/dist/migrate-three/parse.js.map +1 -0
  318. package/dist/migrate-three/report.d.ts +18 -0
  319. package/dist/migrate-three/report.d.ts.map +1 -0
  320. package/dist/migrate-three/report.js +16 -0
  321. package/dist/migrate-three/report.js.map +1 -0
  322. package/dist/pull-bridge/adapters.d.ts +1 -1
  323. package/dist/pull-bridge/adapters.d.ts.map +1 -1
  324. package/dist/pull-bridge/adapters.js +17 -4
  325. package/dist/pull-bridge/adapters.js.map +1 -1
  326. package/dist/pull-bridge/provenance.d.ts.map +1 -1
  327. package/dist/pull-bridge/provenance.js +3 -2
  328. package/dist/pull-bridge/provenance.js.map +1 -1
  329. package/dist/pull-bridge/pullable.d.ts.map +1 -1
  330. package/dist/pull-bridge/pullable.js +14 -3
  331. package/dist/pull-bridge/pullable.js.map +1 -1
  332. package/dist/pull-bridge/scoring.d.ts +36 -8
  333. package/dist/pull-bridge/scoring.d.ts.map +1 -1
  334. package/dist/pull-bridge/scoring.js +143 -47
  335. package/dist/pull-bridge/scoring.js.map +1 -1
  336. package/dist/pull-bridge/search.d.ts +2 -0
  337. package/dist/pull-bridge/search.d.ts.map +1 -1
  338. package/dist/pull-bridge/search.js +17 -10
  339. package/dist/pull-bridge/search.js.map +1 -1
  340. package/dist/pull-bridge.d.ts +2 -2
  341. package/dist/pull-bridge.d.ts.map +1 -1
  342. package/dist/pull-bridge.js +24 -8
  343. package/dist/pull-bridge.js.map +1 -1
  344. package/package.json +6 -3
  345. package/skills/agent-files/AGENTS.md +3 -0
  346. package/skills/aura3d-animation-studio/SKILL.md +153 -0
  347. package/skills/aura3d-animation-studio/references/shot-looks.md +26 -0
  348. package/skills/aura3d-art-direction/SKILL.md +84 -0
  349. package/skills/aura3d-art-direction/references/failure-gallery.md +64 -0
  350. package/skills/aura3d-art-direction/references/framing-and-shots.md +45 -0
  351. package/skills/aura3d-art-direction/references/look-recipes.md +32 -0
  352. package/skills/aura3d-art-direction/references/quality-bar.md +103 -0
  353. package/skills/aura3d-art-direction/references/reference-frames.md +82 -0
  354. package/skills/aura3d-assets/SKILL.md +132 -0
  355. package/skills/aura3d-assets/references/preview-under-look.md +26 -0
  356. package/skills/aura3d-browser-game/SKILL.md +127 -0
  357. package/skills/aura3d-browser-game/references/genre-looks.md +52 -0
  358. package/skills/aura3d-character-animation/SKILL.md +129 -0
  359. package/skills/aura3d-character-animation/references/stage-and-lighting.md +31 -0
  360. package/skills/aura3d-core/SKILL.md +121 -0
  361. package/skills/aura3d-core/references/boundaries.md +91 -0
  362. package/skills/aura3d-evidence-review/SKILL.md +106 -0
  363. package/skills/aura3d-game-art/SKILL.md +118 -0
  364. package/skills/aura3d-game-art/references/sheet-check.mjs +58 -0
  365. package/skills/aura3d-game-art/references/sprite-palettes.md +25 -0
  366. package/skills/aura3d-materials-environments/SKILL.md +139 -0
  367. package/skills/aura3d-performance/SKILL.md +97 -0
  368. package/skills/aura3d-retexture/SKILL.md +115 -0
  369. package/skills/aura3d-retexture/references/geometry-hash.mjs +89 -0
  370. package/skills/aura3d-scene-authoring/SKILL.md +132 -0
  371. package/skills/aura3d-scene-authoring/references/look-by-family.md +28 -0
  372. package/skills/aura3d-threejs-migration/SKILL.md +125 -0
  373. package/skills/aura3d-threejs-migration/references/look-mapping.md +27 -0
  374. package/skills/llms.txt +117 -0
  375. package/skills/manifest.json +163 -0
  376. package/skills/meshy-cli/SKILL.md +133 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * PRD-13 §7.6 — `look rubric` / `look judge` data model.
3
+ *
4
+ * AGENT_LOOK_CATEGORIES is the 12-category agent judging rubric: the subset of
5
+ * C-32 GAME_VISUAL_CATEGORIES an agent can move from code (the full list also
6
+ * covers sound, controls, physics feel, ... that screenshots cannot prove).
7
+ * The ⊆ assertion lives in tests/unit/cli/look-judge.test.ts.
8
+ *
9
+ * CATEGORY_HINTS is the next-change hint table the judge reports: keyed by the
10
+ * weakest rubric category, it names the concrete @aura3d/engine API to touch —
11
+ * drawn from aura3d-art-direction/references/look-recipes.md and the lookLint
12
+ * rule inventory. Keep entries in terms of real exported APIs only.
13
+ */
14
+ export const AGENT_LOOK_CATEGORIES = [
15
+ "lighting", "shadows", "ibl_reflections", "environment_world", "atmospheric_effects",
16
+ "material_quality", "modeling_assets", "composition", "camera", "postprocessing",
17
+ "animation_quality", "ui_hud"
18
+ ];
19
+ export const LOOK_JUDGEMENT_SCHEMA = "aura3d.look-judgement/1";
20
+ /** Genre → recipe row (condensed from look-recipes.md; the doc is the narrative). */
21
+ export const GENRE_RECIPE_ROWS = {
22
+ platformer: { look: "outdoor-day", camera: "follow (side-on), fov 50", subjectPercent: "18–25", keyLight: "sun 48°/35° 3/4 front", palette: "saturated greens + sky blue + warm wood, coin gold accent", atmosphere: "fog 0.0025", post: "daylight-outdoor" },
23
+ racing: { look: "golden-hour", camera: "chase, fov 60", subjectPercent: "15–25", keyLight: "low sun 12°/35°", palette: "warm asphalt + burnt orange + charcoal, headlight amber", atmosphere: "fog 30–180 m", post: "cinematic-film" },
24
+ fighting: { look: "arena-fight", camera: "follow (side-on), fov 45", subjectPercent: "20–30 (pair)", keyLight: "top spot 60°/0°", palette: "arena dark + rope colour + crowd shadow, spotlight rim", atmosphere: "haze cone", post: "arena-fight" },
25
+ "arena shooter": { look: "space", camera: "orthographic top-down 60°, fov 55", subjectPercent: "10–15 (field)", keyLight: "rim 70°/210°", palette: "deep space blue + graphite + teal, laser magenta", atmosphere: "none (space background exception)", post: "space" },
26
+ "sports/table": { look: "interior-industrial", camera: "orthographic broadcast 70°, fov 40", subjectPercent: "25–40 (table)", keyLight: "flood 55°/45°", palette: "turf green + line white + crowd dark, ball accent", atmosphere: "indoor haze", post: "arena-fight" },
27
+ product: { look: "product-studio", camera: "orbit autoframe, fov 35", subjectPercent: "45–70", keyLight: "softbox 45°/30°", palette: "neutral grey + white + metal, one brand accent", atmosphere: "none", post: "product-studio" },
28
+ character: { look: "character-showcase", camera: "orbit, fov 40", subjectPercent: "50–70", keyLight: "3-point 50°/35°", palette: "costume neutrals + rim pick", atmosphere: "light room haze", post: "product-studio" },
29
+ "outdoor environment": { look: "overcast", camera: "establishing wide, fov 55", subjectPercent: "vista", keyLight: "sun 50°/40°", palette: "muted green + slate + fog blue, wildflower accent", atmosphere: "fog 0.004", post: "daylight-outdoor" },
30
+ interior: { look: "interior-warm", camera: "medium orbit, fov 45", subjectPercent: "30–50 (anchor)", keyLight: "window 35°/60°", palette: "warm wood + cream + book spines, plant green", atmosphere: "dust shafts", post: "cinematic-film" },
31
+ "night city": { look: "night-city", camera: "low tele, fov 35", subjectPercent: "20–35 (street)", keyLight: "neon rim 25°/120°", palette: "sodium orange + neon + dark asphalt, cyan accent", atmosphere: "fog 15–90 m wet street", post: "neon-night" },
32
+ space: { look: "space", camera: "orbit wide, fov 60", subjectPercent: "30–50 (planet)", keyLight: "star key 30°/180°", palette: "void blue + planet limb + star field, aurora accent", atmosphere: "none (background exception)", post: "space" },
33
+ underwater: { look: "underwater", camera: "follow, fov 50", subjectPercent: "20–40 (creature)", keyLight: "godray 70°/10°", palette: "deep blue + teal + kelp green, coral accent", atmosphere: "scatter 0.03 caustics", post: "underwater" },
34
+ cinematic: { look: "polar-night", camera: "establishing dolly, fov 35", subjectPercent: "25–40", keyLight: "moon 20°/300°", palette: "aurora green + snow blue + night, lantern amber", atmosphere: "snow mist 0.006", post: "cinematic-film" }
35
+ };
36
+ /**
37
+ * Weakest-category → concrete next change. APIs are restricted to the public
38
+ * @aura3d/engine surface (looks.preset overrides, environments.*, lights.*,
39
+ * camera.*, effects/post ids) so the hint is always actionable.
40
+ */
41
+ export const CATEGORY_HINTS = {
42
+ lighting: { category: "lighting", change: "raise key light or soften ambient so lit:shadow ratio reads ~2:1; move the sun to the recipe's azimuth/elevation", api: "looks.preset(id, { sun: { azimuthDeg, elevationDeg } })" },
43
+ shadows: { category: "shadows", change: "raise shadow strength toward the look target and pull the key light to an angle that throws visible contact shadows", api: "looks.preset(id, { sun: { azimuthDeg, elevationDeg } })" },
44
+ ibl_reflections: { category: "ibl_reflections", change: "set the look's environment so metals/glossy materials pick up image-based reflections", api: "environments.hdri(url) or the look's preset env" },
45
+ environment_world: { category: "environment_world", change: "swap to the genre's env preset or lower fog density so the world reads past the subject", api: "environments.<named>(…) builders" },
46
+ atmospheric_effects: { category: "atmospheric_effects", change: "add the recipe row's atmosphere (fog scale, haze, shafts) at the look's intensity", api: "looks.preset(id, { fogDensityScale })" },
47
+ material_quality: { category: "material_quality", change: "move flat materials to PBR values and let IBL drive specular response", api: "material.pbr / the look's material defaults" },
48
+ modeling_assets: { category: "modeling_assets", change: "replace primitives with typed catalog models sized to the recipe", api: "model(assets.x) after assets resolve/add" },
49
+ composition: { category: "composition", change: "reframe so the subject fills the recipe's frame-height share", api: "camera.perspective / camera.orbit fov + target" },
50
+ camera: { category: "camera", change: "switch to the recipe row's rig and fov", api: "camera.follow / camera.orbit / camera.dolly" },
51
+ postprocessing: { category: "postprocessing", change: "apply the recipe row's post preset instead of hand-tuning render passes", api: "the look's post preset (AuraPostPresetId)" },
52
+ animation_quality: { category: "animation_quality", change: "play the asset's real clips (idle/run/jump) rather than transform tweens", api: "the asset's clip handle (assets.x animations)" },
53
+ ui_hud: { category: "ui_hud", change: "reduce HUD to genre-minimal elements over the look's palette", api: "HUD layer over the applied look" }
54
+ };
55
+ /** Lint-code → hint prefix so judge output ties a weak category to the failing rule. */
56
+ export const LINT_CODE_HINTS = {
57
+ "look/no-lights": { change: "the scene has no light nodes at all", api: "looks.preset(id)" },
58
+ "look/ambient-kills-ibl": { change: "ambient light washes out the look's image-based lighting", api: "drop lights.ambient or set the env's own ambient" },
59
+ "look/no-ibl": { change: "materials get no specular response without an environment", api: "environments.hdri / preset env" },
60
+ "look/weak-shadow": { change: "shadows too weak to read", api: "raise shadow strength on the key light" },
61
+ "look/low-dpr": { change: "pixel ratio under the tier cap", api: "looks.appOptions(id) pixelRatio" },
62
+ "look/solid-void": { change: "flat void background", api: "the look's sky/gradient background" },
63
+ "look/primitive-subject": { change: "hero subject is a primitive", api: "model(assets.x)" },
64
+ "look/flat-palette": { change: "palette lacks the recipe's base+accent structure", api: "looks.preset(id, { accent })" },
65
+ "look/double-aa": { change: "two AA passes fighting", api: "the look's single AA choice" },
66
+ "look/debug-overlay": { change: "debug overlay ships in the frame", api: "turn the overlay off before capture" },
67
+ "look/multiple-looks": { change: "more than one look applied", api: "one looks.preset per scene" },
68
+ "look/expansion-mismatch": { change: "look resolved differently than declared", api: "re-run capture; pin the look id" },
69
+ "look/ambient-flattens": { change: "ambient above the look's ceiling flattens shading", api: "lower ambient intensity" },
70
+ "look/fake-effect-names": { change: "fake effect names in the source", api: "use the engine's real effect ids" },
71
+ "look/capture-branch": { change: "behaviour branches on capture params", api: "one code path; captures observe it" }
72
+ };
73
+ export function lookHintFor(category, lintCodes = []) {
74
+ const lint = lintCodes.map((code) => LINT_CODE_HINTS[code]).find((hint) => hint !== undefined);
75
+ const base = CATEGORY_HINTS[category];
76
+ if (lint && base) {
77
+ return { category, change: `${lint.change} — ${base.change}`, api: lint.api };
78
+ }
79
+ if (base)
80
+ return base;
81
+ if (lint)
82
+ return { category, change: lint.change, api: lint.api };
83
+ return { category, change: "iterate inside the look-dev loop", api: "looks.preset(id)" };
84
+ }
85
+ const CATEGORY_SET = new Set(AGENT_LOOK_CATEGORIES);
86
+ export function validateLookJudgement(value) {
87
+ const errors = [];
88
+ if (typeof value !== "object" || value === null) {
89
+ return { ok: false, errors: ["judgement is not an object"] };
90
+ }
91
+ const j = value;
92
+ if (j.schema !== LOOK_JUDGEMENT_SCHEMA)
93
+ errors.push(`schema must be ${LOOK_JUDGEMENT_SCHEMA}`);
94
+ if (typeof j.round !== "number" || !Number.isInteger(j.round) || j.round < 1)
95
+ errors.push("round must be an integer >= 1");
96
+ if (!Array.isArray(j.shots) || j.shots.length === 0) {
97
+ errors.push("shots must be a non-empty array");
98
+ }
99
+ else {
100
+ for (const [i, shot] of j.shots.entries()) {
101
+ if (typeof shot !== "object" || shot === null) {
102
+ errors.push(`shots[${i}] is not an object`);
103
+ continue;
104
+ }
105
+ const s = shot;
106
+ if (typeof s.path !== "string" || s.path.length === 0)
107
+ errors.push(`shots[${i}].path required`);
108
+ if (typeof s.sha256 !== "string" || !/^[a-f0-9]{64}$/.test(s.sha256))
109
+ errors.push(`shots[${i}].sha256 must be 64 hex chars`);
110
+ }
111
+ }
112
+ if (!Array.isArray(j.references))
113
+ errors.push("references must be an array");
114
+ if (typeof j.scores !== "object" || j.scores === null) {
115
+ errors.push("scores must be an object");
116
+ }
117
+ else {
118
+ const scores = j.scores;
119
+ if (Object.keys(scores).length === 0)
120
+ errors.push("scores must not be empty");
121
+ for (const [category, score] of Object.entries(scores)) {
122
+ if (!CATEGORY_SET.has(category))
123
+ errors.push(`unknown category "${category}" (must be one of AGENT_LOOK_CATEGORIES)`);
124
+ if (typeof score !== "number" || score < 0 || score > 10 || (score * 2) % 1 !== 0) {
125
+ errors.push(`score ${category}=${String(score)} must be 0–10 in 0.5 steps`);
126
+ }
127
+ }
128
+ }
129
+ if (!Array.isArray(j.observations)) {
130
+ errors.push("observations must be an array");
131
+ }
132
+ else if (typeof j.scores === "object" && j.scores !== null) {
133
+ const scores = j.scores;
134
+ const observed = new Set(j.observations.map((o) => o.category).filter((c) => typeof c === "string"));
135
+ for (const [category, score] of Object.entries(scores)) {
136
+ if (score < 7 && !observed.has(category)) {
137
+ errors.push(`score ${category}=${score} < 7 requires at least one observation for that category`);
138
+ }
139
+ }
140
+ }
141
+ const next = j.nextChange;
142
+ if (typeof next !== "object" || next === null) {
143
+ errors.push("nextChange required");
144
+ }
145
+ else {
146
+ for (const key of ["category", "change", "api"]) {
147
+ if (typeof next[key] !== "string" || next[key].length === 0)
148
+ errors.push(`nextChange.${key} required`);
149
+ }
150
+ if (typeof next.category === "string" && !CATEGORY_SET.has(next.category)) {
151
+ errors.push(`nextChange.category "${next.category}" is not a rubric category`);
152
+ }
153
+ }
154
+ if (j.judge !== "self" && j.judge !== "prism")
155
+ errors.push('judge must be "self" or "prism"');
156
+ return { ok: errors.length === 0, errors };
157
+ }
158
+ export function weakestLookCategory(judgement) {
159
+ let weakest;
160
+ let low = Number.POSITIVE_INFINITY;
161
+ for (const [category, score] of Object.entries(judgement.scores)) {
162
+ if (typeof score === "number" && score < low) {
163
+ low = score;
164
+ weakest = category;
165
+ }
166
+ }
167
+ return weakest;
168
+ }
169
+ //# sourceMappingURL=rubric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubric.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/rubric.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AssetCliResult, AuraAssetQuality, AuraCliAssetRole } from "../asset-core-types.js";
1
+ import type { AssetCliResult, AuraAssetQuality, AuraCliAssetEntry, AuraCliAssetRole } from "../asset-core-types.js";
2
2
  import { type MeshyAdmissionReport, type MeshyAssetProfile } from "./admission.js";
3
3
  export interface ImportMeshyOptions {
4
4
  readonly projectDir?: string;
@@ -11,6 +11,8 @@ export interface ImportMeshyOptions {
11
11
  readonly quality?: AuraAssetQuality;
12
12
  readonly role?: AuraCliAssetRole;
13
13
  readonly profile?: MeshyAssetProfile;
14
+ /** §6.5 release path: candidate entry id whose --from-generated derived bytes are being imported. */
15
+ readonly sourceEntry?: string;
14
16
  }
15
17
  export interface ImportMeshyResult extends AssetCliResult {
16
18
  readonly typedKey: string;
@@ -21,5 +23,9 @@ export interface ImportMeshyResult extends AssetCliResult {
21
23
  readonly admission: MeshyAdmissionReport;
22
24
  readonly nextCommands: readonly string[];
23
25
  }
26
+ export interface MeshyReleaseContext {
27
+ /** The source candidate entry this release import republishes (derived output). */
28
+ readonly entry: AuraCliAssetEntry;
29
+ }
24
30
  export declare function importMeshyAsset(options: ImportMeshyOptions): ImportMeshyResult;
25
31
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/meshy/import.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGjG,OAAO,EAAqF,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOtK,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CA2E/E"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/meshy/import.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGpH,OAAO,EAAqF,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOtK,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,qGAAqG;IACrG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAID,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AA4CD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CA+G/E"}
@@ -1,8 +1,9 @@
1
- import { readdirSync, realpathSync } from "node:fs";
1
+ import { createHash } from "node:crypto";
2
+ import { readdirSync, readFileSync, realpathSync } from "node:fs";
2
3
  import { isAbsolute, relative, resolve } from "node:path";
3
4
  import { addAsset, inspectAsset } from "../index.js";
4
5
  import { DEFAULT_AURA_ASSET_OUTPUT_DIR, DEFAULT_AURA_ASSET_PUBLIC_PATH } from "../asset-constants.js";
5
- import { readAssetManifest } from "../asset-manifest.js";
6
+ import { readAssetManifest, writeAssetManifest, writeTypedAssets } from "../asset-manifest.js";
6
7
  import { inspectGlbGeometry } from "../asset-screening-effects.js";
7
8
  import { createMeshyAdmissionReport, inferMeshyAssetProfile, inspectMeshyTextureDimensions } from "./admission.js";
8
9
  import { retainMeshyEvidence } from "./evidence.js";
@@ -11,12 +12,51 @@ import { createMeshyProvenance } from "./provenance.js";
11
12
  import { retainMeshyThumbnail } from "./thumbnail.js";
12
13
  import { resolveConfinedPath, selectMeshyGlb } from "./validation.js";
13
14
  const METADATA_NAMES = new Set(["meta.json", "metadata.json", "task.json"]);
15
+ /**
16
+ * §6.5 release promotion: Meshy imports reach `release` only through bytes
17
+ * that ARE a `derived` record produced by `assets optimize --from-generated`
18
+ * on an existing candidate entry, whose release admission already passed
19
+ * G1–G11 on those same bytes. `--source-entry <id>` identifies the candidate;
20
+ * every missing link is listed so the caller sees exactly which gates or
21
+ * records are absent.
22
+ */
23
+ function meshyReleaseBlockers(projectDir, options, manifest, sourceFile) {
24
+ const blockers = [];
25
+ if (!options.sourceEntry) {
26
+ blockers.push("--source-entry <id> — the candidate entry whose --from-generated derived output is being imported");
27
+ return { blockers };
28
+ }
29
+ const source = manifest.assets.find((a) => a.id === options.sourceEntry);
30
+ if (!source) {
31
+ blockers.push(`source entry "${options.sourceEntry}" is not in aura.assets.json`);
32
+ return { blockers };
33
+ }
34
+ const derived = source.derived;
35
+ if (!derived) {
36
+ blockers.push(`entry "${source.id}" has no derived record — run \`assets optimize ${source.id} --from-generated\` first`);
37
+ return { blockers, source };
38
+ }
39
+ const stepNames = new Set(derived.steps.map((s) => s.step));
40
+ const missingSteps = ["sliver-check", "remesh", "bake"].filter((s) => !stepNames.has(s));
41
+ if (missingSteps.length > 0) {
42
+ blockers.push(`derived.steps on "${source.id}" lack ${missingSteps.join(", ")} — not a \`--from-generated\` optimize run (§6.5)`);
43
+ }
44
+ const importedHash = `sha256:${createHash("sha256").update(readFileSync(sourceFile)).digest("hex")}`;
45
+ if (derived.hash !== importedHash) {
46
+ blockers.push(`imported bytes do not match derived output of "${source.id}" (${derived.hash.slice(0, 16)}… vs ${importedHash.slice(0, 16)}…) — import the file optimize wrote`);
47
+ }
48
+ const admission = source.admission;
49
+ const gateFailures = (admission?.checks ?? []).filter((c) => c.verdict === "fail");
50
+ if (admission?.status !== "admitted" || admission.quality !== "release" || gateFailures.length > 0) {
51
+ const which = gateFailures.map((c) => c.gate).join(", ") || "release admission missing";
52
+ blockers.push(`release admission on "${source.id}" — missing/failed gates: ${which} (run \`assets admit ${source.id} --quality release\`)`);
53
+ }
54
+ return { blockers, source };
55
+ }
14
56
  export function importMeshyAsset(options) {
15
57
  const projectDir = realpathSync(resolve(options.projectDir ?? process.cwd()));
16
58
  if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(options.name))
17
59
  throw new Error("Meshy asset name must be a safe TypeScript key: " + options.name);
18
- if (options.quality === "release")
19
- throw new Error("Meshy imports cannot certify release quality. Import as candidate, then complete route evidence and independent human review.");
20
60
  const allowedRoot = resolve(projectDir, options.allowedRoot ?? "artifacts/meshy");
21
61
  const input = resolveConfinedPath(allowedRoot, isAbsolute(options.input) ? options.input : resolve(projectDir, options.input), "input");
22
62
  const sourceFile = selectMeshyGlb(input, options.file);
@@ -35,6 +75,15 @@ export function importMeshyAsset(options) {
35
75
  const inspection = inspectAsset({ projectDir, file: relative(projectDir, sourceFile), animation: true, humanoid: true, skeleton: true, morphs: true });
36
76
  const geometry = inspectGlbGeometry(sourceFile);
37
77
  const manifest = readAssetManifest(projectDir);
78
+ let releaseContext;
79
+ if (options.quality === "release") {
80
+ const { blockers, source } = meshyReleaseBlockers(projectDir, options, manifest, sourceFile);
81
+ if (blockers.length > 0 || !source) {
82
+ throw new Error("Meshy release import refused (§6.5): release requires a `derived` record from `assets optimize --from-generated` " +
83
+ "and a passing G1–G11 admission on the same bytes. Missing:\n - " + blockers.join("\n - "));
84
+ }
85
+ releaseContext = { entry: source };
86
+ }
38
87
  const thumbnail = retainMeshyThumbnail({
39
88
  projectDir,
40
89
  inputDir: input,
@@ -57,8 +106,9 @@ export function importMeshyAsset(options) {
57
106
  file: relative(projectDir, sourceFile),
58
107
  name: options.name,
59
108
  type: "model",
60
- quality: options.quality ?? "candidate",
61
- role: options.role ?? roleForProfile(profile),
109
+ // release entries land as release only after the §6.5 chain verified.
110
+ quality: options.quality === "release" ? "release" : (options.quality ?? "candidate"),
111
+ role: options.role ?? releaseContext?.entry.role ?? roleForProfile(profile),
62
112
  sourceFamily: "meshy",
63
113
  ...(rights.licenseName ? { license: rights.licenseName, licenseName: rights.licenseName } : {}),
64
114
  ...(rights.licenseUrl ? { licenseUrl: rights.licenseUrl } : {}),
@@ -69,6 +119,30 @@ export function importMeshyAsset(options) {
69
119
  generation,
70
120
  ...(thumbnail ? { renderedProbe: thumbnail.renderedProbe } : {})
71
121
  });
122
+ // §6.5: carry the source entry's verified records onto the release entry —
123
+ // the imported bytes ARE the derived output (hash-verified above), so
124
+ // derived/admission/lookDev/artDirection transfer; aliasOf marks the
125
+ // byte-identity for the dedup ledger.
126
+ if (releaseContext) {
127
+ const src = releaseContext.entry;
128
+ const fresh = readAssetManifest(projectDir);
129
+ const target = fresh.assets.find((a) => a.id === options.name);
130
+ if (target) {
131
+ const patched = {
132
+ ...target,
133
+ derived: src.derived,
134
+ admission: src.admission,
135
+ lookDev: src.lookDev,
136
+ ...(src.artDirection ? { artDirection: src.artDirection } : {}),
137
+ aliasOf: src.id,
138
+ };
139
+ writeAssetManifest(projectDir, {
140
+ ...fresh,
141
+ assets: fresh.assets.map((a) => (a.id === options.name ? patched : a)),
142
+ });
143
+ writeTypedAssets(projectDir, fresh);
144
+ }
145
+ }
72
146
  const nextCommands = [
73
147
  "npx @aura3d/cli assets validate --asset " + options.name + " --require-license",
74
148
  "npx @aura3d/cli assets validate --asset " + options.name + " --release --require-license"
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/meshy/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/meshy/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface ThreeCompatCompatibilityWarning {
2
+ readonly code: string;
3
+ readonly message: string;
4
+ }
5
+ export declare function createThreeCompatCompatibilityWarnings(source: string): readonly ThreeCompatCompatibilityWarning[];
6
+ //# sourceMappingURL=CompatibilityWarnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompatibilityWarnings.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/CompatibilityWarnings.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,sCAAsC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,+BAA+B,EAAE,CAQjH"}
@@ -0,0 +1,24 @@
1
+ import { THREE_COMPAT_UNSUPPORTED_THREE_IMPORTS } from "./ImportMap.js";
2
+ import { createR3fMigrationWarnings } from "./R3fMigration.js";
3
+ export function createThreeCompatCompatibilityWarnings(source) {
4
+ return [
5
+ ...(/WebGLRenderer/.test(source) ? [{ code: "renderer-adapter", message: "WebGLRenderer setup is mapped to ThreeCompatRenderer/createThreeCompatRenderer." }] : []),
6
+ ...(/OrbitControls/.test(source) ? [{ code: "controls-adapter", message: "OrbitControls import is mapped to A3D controls." }] : []),
7
+ ...(/GLTFLoader/.test(source) ? [{ code: "loader-adapter", message: "GLTFLoader import is mapped to ThreeCompat loader diagnostics." }] : []),
8
+ ...createUnsupportedPostprocessWarnings(source),
9
+ ...createR3fMigrationWarnings(source)
10
+ ];
11
+ }
12
+ function createUnsupportedPostprocessWarnings(source) {
13
+ const matched = THREE_COMPAT_UNSUPPORTED_THREE_IMPORTS.filter((specifier) => source.includes(specifier));
14
+ if (matched.length === 0)
15
+ return [];
16
+ return [{
17
+ code: "postprocessing-unsupported",
18
+ message: `Three.js postprocessing imports are not migrated and were left unchanged: ${matched.join(", ")}. `
19
+ + "Aura3D has no GPU render-target composer equivalent yet; the available production passes operate on CPU pixel buffers "
20
+ + "and would silently change behaviour. Use @aura3d/engine effects.bloom() for emissive bloom, or keep the Three.js "
21
+ + "postprocessing stack until an Aura3D composer ships."
22
+ }];
23
+ }
24
+ //# sourceMappingURL=CompatibilityWarnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompatibilityWarnings.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/CompatibilityWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAO5D,MAAM,UAAU,sCAAsC,CAAC,MAAc;IACnE,OAAO;QACL,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,iFAAiF,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnK,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7I,GAAG,oCAAoC,CAAC,MAAM,CAAC;QAC/C,GAAG,0BAA0B,CAAC,MAAM,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAAC,MAAc;IAC1D,MAAM,OAAO,GAAG,sCAAsC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,CAAC;YACN,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,6EAA6E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;kBACxG,wHAAwH;kBACxH,mHAAmH;kBACnH,sDAAsD;SAC3D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const THREE_COMPAT_THREE_IMPORT_MAP: Readonly<Record<string, string>>;
2
+ /**
3
+ * Three.js import specifiers this package deliberately does NOT rewrite.
4
+ *
5
+ * WS-3.4 deleted the threejs-compatibility postprocess tree because its passes
6
+ * reported success without touching a GPU. The remaining production passes
7
+ * (packages/rendering/src/production-runtime/postprocess) operate on CPU
8
+ * Uint8Array pixel buffers, not on GPU render targets, so they are not a
9
+ * behavioural substitute for Three.js EffectComposer. Aliasing the subpath to
10
+ * them would convert working Three.js code into non-working Aura3D code and
11
+ * report success — the exact failure WS-3.4 removed.
12
+ *
13
+ * Per R7, a migration surface must not preserve broken semantics to claim
14
+ * coverage. These specifiers are reported as unsupported and left untouched so
15
+ * the developer sees a real compile error at the import site rather than a
16
+ * silent behavioural regression at runtime.
17
+ */
18
+ export declare const THREE_COMPAT_UNSUPPORTED_THREE_IMPORTS: readonly string[];
19
+ //# sourceMappingURL=ImportMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportMap.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/ImportMap.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM1E,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sCAAsC,EAAE,SAAS,MAAM,EASnE,CAAC"}
@@ -0,0 +1,35 @@
1
+ /* Moved verbatim from packages/three-compat/src/migration (PRD-15 T6.2); emitted import targets updated from the deleted @aura3d/three-compat package to @aura3d/engine. */
2
+ export const THREE_COMPAT_THREE_IMPORT_MAP = {
3
+ three: "@aura3d/engine",
4
+ "three/addons/controls/OrbitControls.js": "@aura3d/engine",
5
+ "three/examples/jsm/controls/OrbitControls.js": "@aura3d/engine",
6
+ "three/addons/loaders/GLTFLoader.js": "@aura3d/engine",
7
+ "three/examples/jsm/loaders/GLTFLoader.js": "@aura3d/engine"
8
+ };
9
+ /**
10
+ * Three.js import specifiers this package deliberately does NOT rewrite.
11
+ *
12
+ * WS-3.4 deleted the threejs-compatibility postprocess tree because its passes
13
+ * reported success without touching a GPU. The remaining production passes
14
+ * (packages/rendering/src/production-runtime/postprocess) operate on CPU
15
+ * Uint8Array pixel buffers, not on GPU render targets, so they are not a
16
+ * behavioural substitute for Three.js EffectComposer. Aliasing the subpath to
17
+ * them would convert working Three.js code into non-working Aura3D code and
18
+ * report success — the exact failure WS-3.4 removed.
19
+ *
20
+ * Per R7, a migration surface must not preserve broken semantics to claim
21
+ * coverage. These specifiers are reported as unsupported and left untouched so
22
+ * the developer sees a real compile error at the import site rather than a
23
+ * silent behavioural regression at runtime.
24
+ */
25
+ export const THREE_COMPAT_UNSUPPORTED_THREE_IMPORTS = [
26
+ "three/addons/postprocessing/EffectComposer.js",
27
+ "three/examples/jsm/postprocessing/EffectComposer.js",
28
+ "three/addons/postprocessing/RenderPass.js",
29
+ "three/examples/jsm/postprocessing/RenderPass.js",
30
+ "three/addons/postprocessing/UnrealBloomPass.js",
31
+ "three/examples/jsm/postprocessing/UnrealBloomPass.js",
32
+ "three/addons/postprocessing/ShaderPass.js",
33
+ "three/examples/jsm/postprocessing/ShaderPass.js"
34
+ ];
35
+ //# sourceMappingURL=ImportMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportMap.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/ImportMap.ts"],"names":[],"mappings":"AAAA,4KAA4K;AAC5K,MAAM,CAAC,MAAM,6BAA6B,GAAqC;IAC7E,KAAK,EAAE,gBAAgB;IACvB,wCAAwC,EAAE,gBAAgB;IAC1D,8CAA8C,EAAE,gBAAgB;IAChE,oCAAoC,EAAE,gBAAgB;IACtD,0CAA0C,EAAE,gBAAgB;CAC7D,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAsB;IACvE,+CAA+C;IAC/C,qDAAqD;IACrD,2CAA2C;IAC3C,iDAAiD;IACjD,gDAAgD;IAChD,sDAAsD;IACtD,2CAA2C;IAC3C,iDAAiD;CAClD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { ThreeCompatCompatibilityWarning } from "./CompatibilityWarnings.js";
2
+ /**
3
+ * R3F + CSS2D/CSS3D migration notes (muse3jsparity-PRD V1.4 + N4.3).
4
+ *
5
+ * Two explicit non-parity positions, documented where importers look:
6
+ *
7
+ * 1. No "R3F parity" claim. The covered-path mapping table lives in
8
+ * `@aura3d/react` (`R3F_TO_AURA_MIGRATION_TABLE`: Canvas, Model, Lights,
9
+ * Camera, Effect plus `useAuraFrame` / `useAuraApp` / suspense / events /
10
+ * the three drei recipes). This lab detects R3F/drei source and points at
11
+ * that table instead of rewriting imports it cannot honor.
12
+ * 2. No `CSS2DRenderer` / `CSS3DRenderer` parity (explicit 2.1 decision).
13
+ * `CSS2D_CSS3D_MANUAL_MAP` gives the manual mapping per renderer.
14
+ */
15
+ /** Where the R3F mapping table lives. A pointer, not a copy — one source of truth. */
16
+ export declare const R3F_MIGRATION_TABLE_POINTER: string;
17
+ export interface Css2DCss3DManualMapping {
18
+ readonly three: "CSS2DRenderer" | "CSS3DRenderer";
19
+ readonly aura: string;
20
+ readonly steps: readonly string[];
21
+ }
22
+ /**
23
+ * Manual CSS2D/3D mapping for importers (N4 task 3).
24
+ *
25
+ * CSS2D annotations map onto world-anchored labels. CSS3D has no Aura
26
+ * equivalent — in-plane 3D text maps onto G1 SDF text, and anything beyond
27
+ * that keeps its CSS3DRenderer alongside the canvas (it is DOM; it composes).
28
+ */
29
+ export declare const CSS2D_CSS3D_MANUAL_MAP: readonly Css2DCss3DManualMapping[];
30
+ /** Source-level R3F/drei/CSS2D/CSS3D detection for the migration lab. */
31
+ export declare function createR3fMigrationWarnings(source: string): readonly ThreeCompatCompatibilityWarning[];
32
+ //# sourceMappingURL=R3fMigration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"R3fMigration.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/R3fMigration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;;;;;;;;;;;GAYG;AAEH,sFAAsF;AACtF,eAAO,MAAM,2BAA2B,QAEyB,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,uBAAuB,EAmBpE,CAAC;AAyBF,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,+BAA+B,EAAE,CAErG"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * R3F + CSS2D/CSS3D migration notes (muse3jsparity-PRD V1.4 + N4.3).
3
+ *
4
+ * Two explicit non-parity positions, documented where importers look:
5
+ *
6
+ * 1. No "R3F parity" claim. The covered-path mapping table lives in
7
+ * `@aura3d/react` (`R3F_TO_AURA_MIGRATION_TABLE`: Canvas, Model, Lights,
8
+ * Camera, Effect plus `useAuraFrame` / `useAuraApp` / suspense / events /
9
+ * the three drei recipes). This lab detects R3F/drei source and points at
10
+ * that table instead of rewriting imports it cannot honor.
11
+ * 2. No `CSS2DRenderer` / `CSS3DRenderer` parity (explicit 2.1 decision).
12
+ * `CSS2D_CSS3D_MANUAL_MAP` gives the manual mapping per renderer.
13
+ */
14
+ /** Where the R3F mapping table lives. A pointer, not a copy — one source of truth. */
15
+ export const R3F_MIGRATION_TABLE_POINTER = "@aura3d/react exports R3F_TO_AURA_MIGRATION_TABLE (AuraCanvas components plus useAuraFrame/useAuraApp/suspense/events/drei recipes). " +
16
+ "That table maps covered paths; it is not an R3F-parity claim.";
17
+ /**
18
+ * Manual CSS2D/3D mapping for importers (N4 task 3).
19
+ *
20
+ * CSS2D annotations map onto world-anchored labels. CSS3D has no Aura
21
+ * equivalent — in-plane 3D text maps onto G1 SDF text, and anything beyond
22
+ * that keeps its CSS3DRenderer alongside the canvas (it is DOM; it composes).
23
+ */
24
+ export const CSS2D_CSS3D_MANUAL_MAP = [
25
+ {
26
+ three: "CSS2DRenderer",
27
+ aura: "labels.* world-anchored screen-space labels",
28
+ steps: [
29
+ "Replace each CSS2DObject with labels.billboard() or labels.anchor() at the same world position.",
30
+ "Map CSS2DObject.visible = false to offscreenPolicy: \"hide\" (default is \"clamp\").",
31
+ "Occlusion dimming is on by default (occlusionAware); set occlusionAware: false to keep the old always-on-top CSS behavior."
32
+ ]
33
+ },
34
+ {
35
+ three: "CSS3DRenderer",
36
+ aura: "no equivalent — G1 SDF text for in-plane text, otherwise keep CSS3DRenderer",
37
+ steps: [
38
+ "For text rendered in a 3D plane, use G1 SDF text (packages/rendering/src/SdfText.ts) with the uppercase alphanumeric catalog.",
39
+ "For annotations, use labels.* world-anchored labels instead.",
40
+ "Anything beyond those two keeps its CSS3DRenderer element alongside the AuraCanvas; it is DOM and composes without a migration."
41
+ ]
42
+ }
43
+ ];
44
+ const R3F_SOURCE_MARKERS = [
45
+ {
46
+ marker: "@react-three/fiber",
47
+ code: "r3f-manual",
48
+ message: `R3F imports are not rewritten. Map them manually with ${R3F_MIGRATION_TABLE_POINTER}`
49
+ },
50
+ {
51
+ marker: "@react-three/drei",
52
+ code: "drei-manual",
53
+ message: `drei imports are not rewritten. The three covered patterns are cameraControlsRecipe, environmentPresetRecipe, and transformGizmoRecipe in @aura3d/react; everything else stays on drei. ${R3F_MIGRATION_TABLE_POINTER}`
54
+ },
55
+ {
56
+ marker: "CSS2DRenderer",
57
+ code: "css2d-manual",
58
+ message: `CSS2DRenderer has no Aura parity target by explicit 2.1 decision. ${CSS2D_CSS3D_MANUAL_MAP[0]?.steps.join(" ") ?? ""}`
59
+ },
60
+ {
61
+ marker: "CSS3DRenderer",
62
+ code: "css3d-manual",
63
+ message: `CSS3DRenderer has no Aura parity target by explicit 2.1 decision. ${CSS2D_CSS3D_MANUAL_MAP[1]?.steps.join(" ") ?? ""}`
64
+ }
65
+ ];
66
+ /** Source-level R3F/drei/CSS2D/CSS3D detection for the migration lab. */
67
+ export function createR3fMigrationWarnings(source) {
68
+ return R3F_SOURCE_MARKERS.filter(({ marker }) => source.includes(marker)).map(({ code, message }) => ({ code, message }));
69
+ }
70
+ //# sourceMappingURL=R3fMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"R3fMigration.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/R3fMigration.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,2BAA2B,GACtC,uIAAuI;IACvI,+DAA+D,CAAC;AAQlE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACxE;QACE,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,6CAA6C;QACnD,KAAK,EAAE;YACL,iGAAiG;YACjG,sFAAsF;YACtF,4HAA4H;SAC7H;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,6EAA6E;QACnF,KAAK,EAAE;YACL,+HAA+H;YAC/H,8DAA8D;YAC9D,iIAAiI;SAClI;KACF;CACF,CAAC;AAEF,MAAM,kBAAkB,GAA4F;IAClH;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,yDAAyD,2BAA2B,EAAE;KAChG;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,2LAA2L,2BAA2B,EAAE;KAClO;IACD;QACE,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,qEAAqE,sBAAsB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;KACjI;IACD;QACE,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,qEAAqE,sBAAsB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;KACjI;CACF,CAAC;AAEF,yEAAyE;AACzE,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC5H,CAAC"}