@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,364 @@
1
+ /**
2
+ * `renderer-imports` codemod (PRD-15 T2.11, C-39).
3
+ *
4
+ * Rewrites the four deprecated renderer subpaths
5
+ * @aura3d/engine/advanced-runtime | @aura3d/engine/production-runtime |
6
+ * @aura3d/rendering/advanced-runtime | @aura3d/rendering/production-runtime
7
+ * to `@aura3d/engine/renderer`, renames `A3DRenderer`/`A3DRendererOptions`
8
+ * identifiers to `Renderer`/`RendererOptions`, and rewrites member calls the
9
+ * deleted wrapper classes carried to the free functions on the new surface
10
+ * (`a3dRenderFrame`, `a3dRenderFrameAsync`, `rendererProofCapture`,
11
+ * `rendererFeatureReport`, `rendererShadowReport`).
12
+ *
13
+ * Every edit is a surgical splice on the source text — import declarations
14
+ * are rebuilt, everything else keeps its formatting. Constructs the codemod
15
+ * cannot map (names that are not exported on `./renderer`, receiver-dependent
16
+ * members like `.evidence()`/`.backend`, `preserveDrawingBuffer`) are kept
17
+ * and reported with `mapping: "none"`.
18
+ */
19
+ import ts from "typescript";
20
+ const TARGET = "@aura3d/engine/renderer";
21
+ const SUBPATHS = new Map([
22
+ ["@aura3d/engine/advanced-runtime", TARGET],
23
+ ["@aura3d/engine/production-runtime", TARGET],
24
+ ["@aura3d/rendering/advanced-runtime", TARGET],
25
+ ["@aura3d/rendering/production-runtime", TARGET]
26
+ ]);
27
+ /** Names exported by `packages/engine/src/renderer/index.ts`. */
28
+ const RENDERER_EXPORTS = new Set([
29
+ "Renderer", "RendererOptions", "RendererCreateOptions",
30
+ "A3DRenderer", "A3DRendererOptions",
31
+ "AdvancedRenderer", "AdvancedRendererOptions", "AdvancedRendererSource",
32
+ "ProductionWebGL2Renderer", "ProductionRuntimeRenderer",
33
+ "rendererProofCapture", "rendererFeatureReport", "rendererInteractiveFeatureReport",
34
+ "rendererShadowReport", "validateProductionRendererInput",
35
+ "resolveProductionRuntimeRendererBackend",
36
+ "a3dRenderFrame", "a3dRenderFrameAsync", "a3dRenderResult",
37
+ "A3DScene", "A3DSceneMeshOptions", "A3DSceneRenderSourceOptions",
38
+ "createECSRenderSource",
39
+ "Scene", "SceneNode", "Object3D", "Group", "Mesh", "SkinnedMesh", "InstancedMesh",
40
+ "PerspectiveCamera", "OrthographicCamera", "DirectionalLight", "PointLight", "SpotLight",
41
+ "Renderable", "MeshOptions", "Object3DOptions", "RenderableDescriptor",
42
+ "Geometry", "Material", "PBRMaterial", "UnlitMaterial", "TexturedPBRMaterial",
43
+ "TexturedUnlitMaterial", "SkinnedLitMaterial", "InstancedPBRMaterial", "TextureBinding",
44
+ "RenderMaterial",
45
+ "CameraLike", "RenderDeviceDiagnostics", "RenderItem", "RendererInput", "RenderSource",
46
+ "ResizeToDisplayOptions", "ResizeToDisplayResult", "RendererAnimationLoop",
47
+ "RendererFrameCaptureWithMetadata", "RendererFrameResult", "RendererLifecycle",
48
+ "ProductionRendererBackend", "ProductionRendererFeature", "ProductionRendererFeatureState",
49
+ "ProductionRendererInput", "ProductionRenderProof",
50
+ "ProductionRuntimeRendererBackendPreference", "ProductionRuntimeRendererBackendSelection",
51
+ "ProductionRuntimeRendererOptions", "ProductionWebGL2RendererOptions",
52
+ "RendererTimingDiagnostics", "ScenePickHit", "ScenePickOptions"
53
+ ]);
54
+ const RENAMES = new Map([
55
+ ["A3DRenderer", "Renderer"],
56
+ ["A3DRendererOptions", "RendererOptions"]
57
+ ]);
58
+ /**
59
+ * Member calls the deleted classes carried → free function taking the
60
+ * receiver first. Guarded by minimum argument count so unrelated receivers
61
+ * (e.g. `CurrentRoutesFlagshipViewer.renderFrame()`) are left alone.
62
+ */
63
+ const MEMBER_MAP = [
64
+ { member: "renderFrameAsync", target: "a3dRenderFrameAsync", minArgs: 1 },
65
+ { member: "renderInteractiveFrame", target: "a3dRenderFrame", minArgs: 1 },
66
+ { member: "renderFrame", target: "a3dRenderFrame", minArgs: 1 },
67
+ { member: "captureProof", target: "rendererProofCapture", minArgs: 1 },
68
+ { member: "renderImportedAsset", target: "rendererProofCapture", minArgs: 1 },
69
+ { member: "renderImportedAssetAsync", target: "rendererProofCapture", minArgs: 1,
70
+ note: "rendererProofCapture is synchronous; awaits transparently through the same proof shape" },
71
+ { member: "getShadowEvidence", target: "rendererShadowReport", minArgs: 0 },
72
+ { member: "getFeatures", target: "rendererFeatureReport", minArgs: 0 }
73
+ ];
74
+ const REPORT_ONLY = new Map([
75
+ ["evidence", "a3dRendererEvidence(renderer, options) in @aura3d/engine/devtools — receiver-dependent, not auto-rewritten"]
76
+ ]);
77
+ function lineOf(sf, pos) {
78
+ return sf.getLineAndCharacterOfPosition(pos).line + 1;
79
+ }
80
+ function moduleSpecifierText(node) {
81
+ const spec = node.moduleSpecifier;
82
+ if (!spec || !ts.isStringLiteral(spec))
83
+ return null;
84
+ return spec.text;
85
+ }
86
+ export function createRendererImportsCodemod() {
87
+ return {
88
+ name: "renderer-imports",
89
+ owner: "prd15",
90
+ description: "PRD-15 renderer surface consolidation: engine/rendering runtime subpaths → @aura3d/engine/renderer; A3DRenderer → Renderer; deleted wrapper methods → free functions.",
91
+ transform(source, fileName) {
92
+ // Inline `<script type="module">` blocks in .html files (PRD-15 §6.5:
93
+ // the codemod rewrites apps/public-scene/index.html too).
94
+ if (fileName.endsWith(".html")) {
95
+ const rows = [];
96
+ const code = source.replace(/<script type="module">([\s\S]*?)<\/script>/g, (_m, inner, offset) => {
97
+ const sub = codemodInner(inner, `${fileName}#script@${offset}`);
98
+ rows.push(...sub.rows);
99
+ return `<script type="module">${sub.code}</script>`;
100
+ });
101
+ return { code, rows };
102
+ }
103
+ return codemodInner(source, fileName);
104
+ function codemodInner(source, fileName) {
105
+ const sf = ts.createSourceFile(fileName, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
106
+ const edits = [];
107
+ const rows = [];
108
+ const neededImports = new Set();
109
+ const replacedRanges = [];
110
+ const insideReplaced = (pos, end) => replacedRanges.some((r) => pos >= r.start && end <= r.end);
111
+ // --- pass 1: import/export declarations ---
112
+ const specifiers = (node) => {
113
+ const named = node.importClause?.namedBindings;
114
+ return named && ts.isNamedImports(named) ? [...named.elements] : [];
115
+ };
116
+ for (const stmt of sf.statements) {
117
+ if (!ts.isImportDeclaration(stmt) && !ts.isExportDeclaration(stmt))
118
+ continue;
119
+ const spec = moduleSpecifierText(stmt);
120
+ if (!spec || (!SUBPATHS.has(spec) && spec !== TARGET))
121
+ continue;
122
+ const target = SUBPATHS.get(spec) ?? TARGET;
123
+ // spec === TARGET: already on the new entry — only the named-bindings
124
+ // path matters (deprecated aliases like A3DRenderer rename to Renderer).
125
+ const onTarget = spec === TARGET;
126
+ if (ts.isExportDeclaration(stmt)) {
127
+ if (onTarget)
128
+ continue;
129
+ // `export { ... } from "<subpath>"` — same split logic, no import clause flags.
130
+ const clause = stmt.exportClause;
131
+ if (!clause || !ts.isNamedExports(clause)) {
132
+ edits.push({ start: stmt.moduleSpecifier.getStart(sf), end: stmt.moduleSpecifier.getEnd(), text: `"${target}"` });
133
+ rows.push({ file: fileName, line: lineOf(sf, stmt.getStart(sf)), construct: `export * from "${spec}"`, mapping: "exact", target });
134
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
135
+ continue;
136
+ }
137
+ const moved = [];
138
+ const kept = [];
139
+ for (const el of clause.elements) {
140
+ const origName = (el.propertyName ?? el.name).text;
141
+ const renamed = RENAMES.get(origName) ?? origName;
142
+ const alias = el.name.text;
143
+ const text = renamed === alias ? renamed : `${renamed} as ${alias}`;
144
+ if (RENDERER_EXPORTS.has(renamed)) {
145
+ moved.push(el.isTypeOnly ? `type ${text}` : text);
146
+ rows.push({ file: fileName, line: lineOf(sf, el.getStart(sf)), construct: origName, mapping: "exact", target });
147
+ }
148
+ else {
149
+ kept.push(el.isTypeOnly ? `type ${origName === alias ? origName : `${origName} as ${alias}`}` : origName === alias ? origName : `${origName} as ${alias}`);
150
+ rows.push({ file: fileName, line: lineOf(sf, el.getStart(sf)), construct: origName, mapping: "none", note: `not exported by ${target}; stays on deprecated subpath ${spec}` });
151
+ }
152
+ }
153
+ if (!moved.length)
154
+ continue;
155
+ const lines = [];
156
+ if (moved.length)
157
+ lines.push(`export { ${moved.join(", ")} } from "${target}";`);
158
+ if (kept.length)
159
+ lines.push(`export { ${kept.join(", ")} } from "${spec}";`);
160
+ edits.push({ start: stmt.getStart(sf), end: stmt.getEnd(), text: lines.join("\n") });
161
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
162
+ continue;
163
+ }
164
+ const clause = stmt.importClause;
165
+ if (onTarget && (!clause?.namedBindings || !ts.isNamedImports(clause.namedBindings)))
166
+ continue;
167
+ if (!clause) {
168
+ // side-effect import — just repoint
169
+ edits.push({ start: stmt.moduleSpecifier.getStart(sf), end: stmt.moduleSpecifier.getEnd(), text: `"${target}"` });
170
+ rows.push({ file: fileName, line: lineOf(sf, stmt.getStart(sf)), construct: `import "${spec}"`, mapping: "exact", target });
171
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
172
+ continue;
173
+ }
174
+ if (clause.namedBindings && ts.isNamespaceImport(clause.namedBindings)) {
175
+ edits.push({ start: stmt.moduleSpecifier.getStart(sf), end: stmt.moduleSpecifier.getEnd(), text: `"${target}"` });
176
+ rows.push({ file: fileName, line: lineOf(sf, stmt.getStart(sf)), construct: `import * as ${clause.namedBindings.name.text} from "${spec}"`, mapping: "approximate", target, note: "namespace member availability on the new subpath must be verified" });
177
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
178
+ continue;
179
+ }
180
+ const named = specifiers(stmt);
181
+ if (!named.length && !clause.name) {
182
+ // `import {}` — degenerate; repoint harmlessly.
183
+ edits.push({ start: stmt.moduleSpecifier.getStart(sf), end: stmt.moduleSpecifier.getEnd(), text: `"${target}"` });
184
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
185
+ continue;
186
+ }
187
+ const moved = [];
188
+ const kept = [];
189
+ for (const el of named) {
190
+ const origName = (el.propertyName ?? el.name).text;
191
+ const renamed = RENAMES.get(origName) ?? origName;
192
+ const alias = el.name.text;
193
+ // Plain `import { A3DRenderer }` becomes `import { Renderer }` and
194
+ // local usages are renamed in pass 3; an explicit `as` alias is kept.
195
+ const text = alias === origName ? renamed : renamed === alias ? renamed : `${renamed} as ${alias}`;
196
+ if (RENDERER_EXPORTS.has(renamed)) {
197
+ moved.push(el.isTypeOnly ? `type ${text}` : text);
198
+ rows.push({ file: fileName, line: lineOf(sf, el.getStart(sf)), construct: `import ${origName}`, mapping: "exact", target });
199
+ }
200
+ else {
201
+ kept.push(el.isTypeOnly ? `type ${origName === alias ? origName : `${origName} as ${alias}`}` : origName === alias ? origName : `${origName} as ${alias}`);
202
+ rows.push({ file: fileName, line: lineOf(sf, el.getStart(sf)), construct: `import ${origName}`, mapping: "none", note: `not exported by ${target}; stays on deprecated subpath ${spec}` });
203
+ }
204
+ }
205
+ if (!moved.length)
206
+ continue; // nothing maps — leave the import text untouched
207
+ const lines = [];
208
+ const typeFlag = clause.isTypeOnly ? "type " : "";
209
+ const defaultPart = clause.name ? `${clause.name.text}, ` : "";
210
+ if (onTarget) {
211
+ // Names already resolve on the target: emit a single import with
212
+ // renames applied; names absent from RENDERER_EXPORTS keep their
213
+ // exported spelling and are reported "none" above.
214
+ lines.push(`import ${typeFlag}{ ${defaultPart}${[...moved, ...kept].join(", ")} } from "${target}";`);
215
+ }
216
+ else {
217
+ lines.push(`import ${typeFlag}{ ${defaultPart}${moved.join(", ")} } from "${target}";`);
218
+ if (kept.length)
219
+ lines.push(`import ${typeFlag}{ ${kept.join(", ")} } from "${spec}";`);
220
+ }
221
+ edits.push({ start: stmt.getStart(sf), end: stmt.getEnd(), text: lines.join("\n") });
222
+ replacedRanges.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
223
+ }
224
+ // --- pass 2: member-call rewrites + report-only constructs ---
225
+ const visit = (node) => {
226
+ if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
227
+ const pae = node.expression;
228
+ const member = pae.name.text;
229
+ const rule = MEMBER_MAP.find((m) => m.member === member);
230
+ if (rule && node.arguments.length >= rule.minArgs) {
231
+ const recv = source.slice(pae.expression.getStart(sf), pae.expression.getEnd());
232
+ const args = node.arguments.length
233
+ ? source.slice(node.arguments[0].getStart(sf), node.arguments[node.arguments.length - 1].getEnd())
234
+ : "";
235
+ edits.push({
236
+ start: node.getStart(sf),
237
+ end: node.getEnd(),
238
+ text: `${rule.target}(${recv}${args ? `, ${args}` : ""})`
239
+ });
240
+ replacedRanges.push({ start: node.getStart(sf), end: node.getEnd() });
241
+ neededImports.add(rule.target);
242
+ rows.push({
243
+ file: fileName,
244
+ line: lineOf(sf, node.getStart(sf)),
245
+ construct: `${recv}.${member}(${args ? "…" : ""})`,
246
+ mapping: "approximate",
247
+ target: `${rule.target}(${recv}, …)`,
248
+ note: rule.note ?? "receiver assumed to be a Renderer — verify"
249
+ });
250
+ }
251
+ else if (REPORT_ONLY.has(member)) {
252
+ rows.push({
253
+ file: fileName,
254
+ line: lineOf(sf, node.getStart(sf)),
255
+ construct: `${pae.expression.getText(sf)}.${member}(…)`,
256
+ mapping: "none",
257
+ note: REPORT_ONLY.get(member)
258
+ });
259
+ }
260
+ }
261
+ // `Parameters<A3DRenderer["renderFrame"]>[0]` style indexed-access on
262
+ // deleted member types → the free function's parameter list (receiver
263
+ // is param 0, so the requested index shifts by one).
264
+ if (ts.isIndexedAccessTypeNode(node)
265
+ && ts.isTypeReferenceNode(node.objectType)
266
+ && ts.isIdentifier(node.objectType.typeName)
267
+ && ["A3DRenderer", "Renderer", "AdvancedRenderer", "ProductionWebGL2Renderer", "ProductionRuntimeRenderer"].includes(node.objectType.typeName.text)
268
+ && ts.isLiteralTypeNode(node.indexType)
269
+ && ts.isStringLiteral(node.indexType.literal)) {
270
+ const className = node.objectType.typeName.text;
271
+ const member = node.indexType.literal.text;
272
+ const rule = MEMBER_MAP.find((m) => m.member === member);
273
+ if (rule) {
274
+ const parent = node.parent;
275
+ if (ts.isTypeReferenceNode(parent) && parent.typeName.getText(sf) === "Parameters"
276
+ && ts.isIndexedAccessTypeNode(parent.parent)) {
277
+ const idx = parent.parent.indexType.getText(sf);
278
+ const shifted = `Parameters<typeof ${rule.target}>[${idx === "0" ? "1" : idx}]`;
279
+ edits.push({ start: parent.parent.getStart(sf), end: parent.parent.getEnd(), text: shifted });
280
+ replacedRanges.push({ start: parent.parent.getStart(sf), end: parent.parent.getEnd() });
281
+ neededImports.add(rule.target);
282
+ rows.push({ file: fileName, line: lineOf(sf, node.getStart(sf)), construct: `Parameters<${className}["${member}"]>[${idx}]`, mapping: "approximate", target: shifted, note: "receiver injected as param 0 — index shifted" });
283
+ }
284
+ else if (ts.isTypeReferenceNode(parent) && parent.typeName.getText(sf) === "ReturnType") {
285
+ edits.push({ start: parent.getStart(sf), end: parent.getEnd(), text: `ReturnType<typeof ${rule.target}>` });
286
+ replacedRanges.push({ start: parent.getStart(sf), end: parent.getEnd() });
287
+ neededImports.add(rule.target);
288
+ rows.push({ file: fileName, line: lineOf(sf, node.getStart(sf)), construct: `ReturnType<${className}["${member}"]>`, mapping: "approximate", target: `ReturnType<typeof ${rule.target}>` });
289
+ }
290
+ else {
291
+ rows.push({ file: fileName, line: lineOf(sf, node.getStart(sf)), construct: `${className}["${member}"]`, mapping: "none", note: `member type moved to ${rule.target}; manual indexed-access rewrite needed` });
292
+ }
293
+ }
294
+ else if (member === "evidence") {
295
+ rows.push({ file: fileName, line: lineOf(sf, node.getStart(sf)), construct: `${className}["evidence"]`, mapping: "none", note: "→ a3dRendererEvidence in @aura3d/engine/devtools" });
296
+ }
297
+ }
298
+ // `preserveDrawingBuffer` option key — dropped: `Renderer.create`
299
+ // rejects it (excess property) and capture goes through the C-05
300
+ // toBlob stub after a synchronous render. Removed with its comma.
301
+ if (ts.isPropertyAssignment(node) && node.name.getText(sf) === "preserveDrawingBuffer") {
302
+ const start = node.getStart(sf);
303
+ let end = node.getEnd();
304
+ while (end < source.length && /[ \t]/.test(source[end]))
305
+ end++;
306
+ if (source[end] === ",")
307
+ end++;
308
+ if (source[end] === "\n")
309
+ end++;
310
+ edits.push({ start, end, text: "" });
311
+ replacedRanges.push({ start, end });
312
+ rows.push({
313
+ file: fileName,
314
+ line: lineOf(sf, start),
315
+ construct: "preserveDrawingBuffer",
316
+ mapping: "approximate",
317
+ note: "removed on Renderer.create — capture goes through the C-05 toBlob stub after a synchronous render"
318
+ });
319
+ }
320
+ ts.forEachChild(node, visit);
321
+ };
322
+ visit(sf);
323
+ // --- pass 3: identifier renames. Import/export declarations are
324
+ // handled by pass 1 only — an identifier inside an untouched import on
325
+ // a deprecated subpath must keep its exported name (e.g. `A3DRenderer`
326
+ // on ./advanced-runtime still resolves, `Renderer` does not).
327
+ const rename = (node) => {
328
+ if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node))
329
+ return;
330
+ if (ts.isIdentifier(node)) {
331
+ const to = RENAMES.get(node.text);
332
+ if (to && !insideReplaced(node.getStart(sf), node.getEnd())) {
333
+ edits.push({ start: node.getStart(sf), end: node.getEnd(), text: to });
334
+ rows.push({ file: fileName, line: lineOf(sf, node.getStart(sf)), construct: node.text, mapping: "exact", target: to });
335
+ }
336
+ }
337
+ ts.forEachChild(node, rename);
338
+ };
339
+ rename(sf);
340
+ // --- emit: apply edits descending, then inject needed imports ---
341
+ edits.sort((a, b) => b.start - a.start);
342
+ let code = source;
343
+ for (const e of edits)
344
+ code = code.slice(0, e.start) + e.text + code.slice(e.end);
345
+ if (neededImports.size) {
346
+ const want = [...neededImports].filter((n) => !new RegExp(`\\b${n}\\b`).test(
347
+ // already imported from ./renderer after the rewrite?
348
+ code.match(/import[^;]*from\s+["']@aura3d\/engine\/renderer["']/g)?.join("\n") ?? ""));
349
+ if (want.length) {
350
+ const existing = code.match(/import\s+\{([^}]*)\}\s+from\s+["']@aura3d\/engine\/renderer["'];/);
351
+ if (existing) {
352
+ code = code.replace(existing[0], `import { ${[...existing[1].split(",").map((s) => s.trim()).filter(Boolean), ...want].sort().join(", ")} } from "${TARGET}";`);
353
+ }
354
+ else {
355
+ code = `import { ${want.sort().join(", ")} } from "${TARGET}";\n${code}`;
356
+ }
357
+ }
358
+ }
359
+ return { code, rows };
360
+ }
361
+ }
362
+ };
363
+ }
364
+ //# sourceMappingURL=renderer-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-imports.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/codemods/renderer-imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `renderer-mode` codemod (PRD-15 T4.5, C-39).
3
+ *
4
+ * Removes the deprecated `mode` and `fallback` properties from `renderer: {}`
5
+ * option objects (CCR-15-1). `renderer.mode`/`renderer.fallback` are gone —
6
+ * `renderer.quality` (C-27) owns feature levels now, and under A3D_QR_STRICT
7
+ * passing either field throws `AuraMigrationError`.
8
+ *
9
+ * createAuraApp({ scene, renderer: { mode: "safe-basic" } })
10
+ * → createAuraApp({ scene })
11
+ * renderer: { mode: "production", textureBudgetBytes: n }
12
+ * → renderer: { textureBudgetBytes: n }
13
+ *
14
+ * `AuraRendererMode`/`AuraRendererFallbackMode` type references cannot be
15
+ * rewritten mechanically — they are reported with `mapping: "none"` pointing
16
+ * at `renderer.quality`.
17
+ *
18
+ * Every edit is a surgical splice on the source text — property ranges are
19
+ * cut with their separating commas, everything else keeps its formatting.
20
+ */
21
+ export interface CodemodRow {
22
+ readonly file: string;
23
+ readonly line: number;
24
+ readonly construct: string;
25
+ readonly mapping: "exact" | "approximate" | "none";
26
+ readonly target?: string;
27
+ readonly note?: string;
28
+ }
29
+ export declare function createRendererModeCodemod(): {
30
+ readonly name: "renderer-mode";
31
+ readonly owner: "prd15";
32
+ readonly description: string;
33
+ transform(source: string, fileName: string): {
34
+ readonly code: string;
35
+ readonly rows: readonly CodemodRow[];
36
+ };
37
+ };
38
+ //# sourceMappingURL=renderer-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-mode.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/codemods/renderer-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAiCD,wBAAgB,yBAAyB,IAAI;IAC3C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,CAAC;CAC9G,CAsFA"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * `renderer-mode` codemod (PRD-15 T4.5, C-39).
3
+ *
4
+ * Removes the deprecated `mode` and `fallback` properties from `renderer: {}`
5
+ * option objects (CCR-15-1). `renderer.mode`/`renderer.fallback` are gone —
6
+ * `renderer.quality` (C-27) owns feature levels now, and under A3D_QR_STRICT
7
+ * passing either field throws `AuraMigrationError`.
8
+ *
9
+ * createAuraApp({ scene, renderer: { mode: "safe-basic" } })
10
+ * → createAuraApp({ scene })
11
+ * renderer: { mode: "production", textureBudgetBytes: n }
12
+ * → renderer: { textureBudgetBytes: n }
13
+ *
14
+ * `AuraRendererMode`/`AuraRendererFallbackMode` type references cannot be
15
+ * rewritten mechanically — they are reported with `mapping: "none"` pointing
16
+ * at `renderer.quality`.
17
+ *
18
+ * Every edit is a surgical splice on the source text — property ranges are
19
+ * cut with their separating commas, everything else keeps its formatting.
20
+ */
21
+ import ts from "typescript";
22
+ const REMOVED_PROPS = new Set(["mode", "fallback"]);
23
+ const DEPRECATED_TYPES = new Set(["AuraRendererMode", "AuraRendererFallbackMode"]);
24
+ /** Calls whose options object takes AuraCreateAppRendererOptions under `renderer:`. */
25
+ const OPTION_CALLS = new Set(["createAuraApp", "createGameApp", "createAuraGameRuntime", "createApp"]);
26
+ /** True when the object literal containing this `renderer:` prop is passed to an app-creation call. */
27
+ function isRendererOptionsObject(node) {
28
+ const holder = node.parent;
29
+ if (!ts.isObjectLiteralExpression(holder))
30
+ return false;
31
+ const parent = holder.parent;
32
+ if (!ts.isCallExpression(parent))
33
+ return false;
34
+ const callee = parent.expression;
35
+ return ts.isIdentifier(callee) && OPTION_CALLS.has(callee.text);
36
+ }
37
+ function lineOf(sf, pos) {
38
+ return sf.getLineAndCharacterOfPosition(pos).line + 1;
39
+ }
40
+ function propName(node) {
41
+ const name = node.name;
42
+ if (ts.isIdentifier(name) || ts.isStringLiteral(name))
43
+ return name.text;
44
+ return undefined;
45
+ }
46
+ export function createRendererModeCodemod() {
47
+ return {
48
+ name: "renderer-mode",
49
+ owner: "prd15",
50
+ description: "PRD-15 no-silent-fallback: remove deprecated renderer.mode/renderer.fallback option fields (CCR-15-1); report AuraRendererMode/AuraRendererFallbackMode type references for renderer.quality migration.",
51
+ transform(source, fileName) {
52
+ const sf = ts.createSourceFile(fileName, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
53
+ const edits = [];
54
+ const rows = [];
55
+ /** Cut `prop` from its object literal, consuming one separating comma. */
56
+ const cutProp = (list, prop) => {
57
+ const commaAfter = source.indexOf(",", prop.getEnd());
58
+ const idx = list.indexOf(prop);
59
+ if (idx < list.length - 1 && commaAfter !== -1) {
60
+ edits.push({ start: prop.getStart(sf), end: commaAfter + 1, text: "" });
61
+ }
62
+ else {
63
+ const commaBefore = source.lastIndexOf(",", prop.getStart(sf));
64
+ edits.push({ start: commaBefore !== -1 ? commaBefore : prop.getStart(sf), end: prop.getEnd(), text: "" });
65
+ }
66
+ };
67
+ /** Find renderer-option literals under `renderer:` (direct or through conditionals/parens). */
68
+ const optionLiterals = (init) => {
69
+ if (ts.isObjectLiteralExpression(init))
70
+ return [init];
71
+ if (ts.isParenthesizedExpression(init))
72
+ return optionLiterals(init.expression);
73
+ if (ts.isConditionalExpression(init))
74
+ return [...optionLiterals(init.whenTrue), ...optionLiterals(init.whenFalse)];
75
+ return [];
76
+ };
77
+ const visit = (node) => {
78
+ if (ts.isPropertyAssignment(node) && propName(node) === "renderer" && isRendererOptionsObject(node)) {
79
+ for (const literal of optionLiterals(node.initializer)) {
80
+ const doomed = literal.properties.filter((p) => ts.isPropertyAssignment(p) && propName(p) !== undefined && REMOVED_PROPS.has(propName(p)));
81
+ for (const prop of doomed) {
82
+ rows.push({
83
+ file: fileName,
84
+ line: lineOf(sf, prop.getStart(sf)),
85
+ construct: `renderer.${propName(prop)}`,
86
+ mapping: "exact",
87
+ target: "renderer.quality",
88
+ note: "CCR-15-1: mode/fallback removed; renderer.quality owns feature levels (A3D_QR_STRICT throws AuraMigrationError)"
89
+ });
90
+ cutProp(literal.properties, prop);
91
+ }
92
+ if (doomed.length === literal.properties.length && doomed.length > 0 && ts.isObjectLiteralExpression(node.initializer) && literal === node.initializer) {
93
+ // The whole renderer object was only mode/fallback — drop the
94
+ // `renderer:` property itself so `{}` is not left behind.
95
+ const parentProps = node.parent.properties;
96
+ rows.push({
97
+ file: fileName,
98
+ line: lineOf(sf, node.getStart(sf)),
99
+ construct: "renderer",
100
+ mapping: "exact",
101
+ note: "renderer option object became empty after removing mode/fallback; property removed"
102
+ });
103
+ // Undo the per-prop cuts: the whole property is replaced by the
104
+ // outer cut, so overlapping edits must not apply.
105
+ for (let i = edits.length - doomed.length; i < edits.length; i++)
106
+ edits[i] = { start: 0, end: 0, text: "" };
107
+ cutProp(parentProps, node);
108
+ }
109
+ }
110
+ }
111
+ if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName) && DEPRECATED_TYPES.has(node.typeName.text)) {
112
+ rows.push({
113
+ file: fileName,
114
+ line: lineOf(sf, node.getStart()),
115
+ construct: `type ${node.typeName.text}`,
116
+ mapping: "none",
117
+ note: "deprecated in CCR-15-1; migrate call site to renderer.quality (AuraQualityTier)"
118
+ });
119
+ }
120
+ ts.forEachChild(node, visit);
121
+ };
122
+ visit(sf);
123
+ const code = edits
124
+ .sort((a, b) => b.start - a.start)
125
+ .reduce((text, edit) => text.slice(0, edit.start) + edit.text + text.slice(edit.end), source);
126
+ return { code, rows };
127
+ }
128
+ };
129
+ }
130
+ //# sourceMappingURL=renderer-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-mode.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/codemods/renderer-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * C-39 lane command registrations — PRD 01 (rendering core).
3
+ * `core-v2` codemod: pure transforms live in tools/quality-rebuild-codemods/;
4
+ * `core inspect-programs` prints the C-31 `programs` section of a saved
5
+ * diagnostics JSON (populated once the Phase-3 program generator lands).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd01/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}