@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,94 @@
1
+ import type { AuraCliCommand } from "../../contracts/commands.js";
2
+ export declare const MOTION_SCENE_IDS: readonly ["prd08-motion-chase-speed", "prd08-motion-impact-shake", "prd08-motion-flight-bank", "prd08-motion-collision", "prd08-motion-rail-shot", "prd08-motion-pacing-120"];
3
+ interface MotionMetricsShape {
4
+ readonly samples: number;
5
+ readonly maxEyeStep: number;
6
+ readonly meanEyeSpeed: number;
7
+ readonly hitchRatio: number;
8
+ readonly fovRange: readonly [number, number];
9
+ readonly rollRangeDeg: readonly [number, number];
10
+ readonly eyeToSubject: {
11
+ readonly min: number;
12
+ readonly mean: number;
13
+ readonly max: number;
14
+ };
15
+ readonly insideColliderSteps: number;
16
+ readonly energyPeak: number;
17
+ readonly energyEnd: number;
18
+ readonly subjectStepCv: number;
19
+ }
20
+ interface MotionExtraShape {
21
+ readonly driver: string;
22
+ readonly rig: string;
23
+ readonly cameraLive?: boolean;
24
+ readonly dt: number;
25
+ readonly metrics: MotionMetricsShape;
26
+ readonly strip?: {
27
+ readonly frames: number;
28
+ readonly lumaVariance: readonly number[];
29
+ readonly dataUrl: string;
30
+ };
31
+ }
32
+ interface EngineResultShape {
33
+ readonly status: string;
34
+ readonly error?: string;
35
+ readonly screenshot?: string | null;
36
+ readonly payload?: {
37
+ readonly engineVersion?: string;
38
+ readonly qrFlags?: readonly string[];
39
+ readonly capabilityLog?: readonly {
40
+ readonly feature: string;
41
+ readonly status: string;
42
+ readonly detail: string;
43
+ }[];
44
+ readonly extra?: {
45
+ readonly motion?: MotionExtraShape;
46
+ };
47
+ };
48
+ }
49
+ interface CaptureReportShape {
50
+ readonly environment?: {
51
+ readonly gpu?: {
52
+ readonly renderer?: string;
53
+ } | null;
54
+ readonly githubRunId?: string | null;
55
+ readonly browserVersion?: string;
56
+ };
57
+ readonly scenes?: readonly {
58
+ readonly scene: string;
59
+ readonly engines: Readonly<Record<string, EngineResultShape>>;
60
+ }[];
61
+ }
62
+ export interface MotionCheck {
63
+ readonly name: string;
64
+ readonly pass: boolean;
65
+ readonly detail: string;
66
+ }
67
+ export interface MotionEngineRow {
68
+ readonly scene: string;
69
+ readonly engine: string;
70
+ readonly status: string;
71
+ readonly rig: string;
72
+ readonly cameraLive: boolean | null;
73
+ readonly metrics: MotionMetricsShape | null;
74
+ readonly stripFrames: number;
75
+ readonly blankTiles: number;
76
+ readonly checks: readonly MotionCheck[];
77
+ readonly gaps: readonly string[];
78
+ readonly stripDataUrl?: string;
79
+ }
80
+ export interface MotionReportResult {
81
+ readonly ok: boolean;
82
+ readonly failures: readonly string[];
83
+ readonly rows: readonly MotionEngineRow[];
84
+ readonly gpu: string;
85
+ readonly runId: string | null;
86
+ }
87
+ export declare function buildMotionReport(report: CaptureReportShape, opts?: {
88
+ readonly scenes?: readonly string[];
89
+ readonly engines?: readonly string[];
90
+ }): MotionReportResult;
91
+ export declare function renderMotionMarkdown(result: MotionReportResult, stripPaths?: Readonly<Record<string, string>>): string;
92
+ export declare const motionReportCommand: AuraCliCommand;
93
+ export {};
94
+ //# sourceMappingURL=motionReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motionReport.d.ts","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd08/motionReport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * C-39 `aura3d prd08 motion-report` (PRD-08 S9). Reads the capture
3
+ * `report.json` written by `benchmarks/quality-rebuild/capture.mjs` for the six
4
+ * `prd08-motion-*` scenes and writes:
5
+ *
6
+ * <out>/motion-report.md per-scene, per-engine trajectory metrics + strips
7
+ * <out>/motion-report.json the same summary, machine-readable
8
+ * <out>/strips/<scene>.<engine>.strip.png 12-tile strips from extra.motion
9
+ *
10
+ * Fails closed (exit 1) when the evidence is incomplete: report missing, an
11
+ * expected scene or engine absent, a capture not `ready`, `extra.motion`
12
+ * missing, fewer strip tiles than the spec asks for, or a blank strip tile.
13
+ * Criterion checks (no inside-geometry frames, hit energy, FOV widening,
14
+ * interpolated pacing) are reported per engine for the review rubric; they are
15
+ * not a gate here — the motion review (review-rubric.md) judges them.
16
+ */
17
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
18
+ import { dirname, join, relative, resolve } from "node:path";
19
+ export const MOTION_SCENE_IDS = [
20
+ "prd08-motion-chase-speed",
21
+ "prd08-motion-impact-shake",
22
+ "prd08-motion-flight-bank",
23
+ "prd08-motion-collision",
24
+ "prd08-motion-rail-shot",
25
+ "prd08-motion-pacing-120"
26
+ ];
27
+ const DEFAULT_REPORT = "benchmarks/quality-rebuild/out/prd08-motion/report.json";
28
+ const EXPECTED_STRIP_FRAMES = 12;
29
+ const BLANK_VARIANCE = 2;
30
+ function criterionChecks(scene, m) {
31
+ const checks = [];
32
+ if (scene.endsWith("chase-speed")) {
33
+ checks.push({ name: "speed FOV widens", pass: m.fovRange[1] - m.fovRange[0] > 1, detail: `fov ${m.fovRange[0]}–${m.fovRange[1]}°` });
34
+ checks.push({ name: "no lag oscillation (hitch < 1)", pass: m.hitchRatio < 1, detail: `hitch ${m.hitchRatio}` });
35
+ }
36
+ else if (scene.endsWith("impact-shake")) {
37
+ checks.push({ name: "hit reaches the camera", pass: m.energyPeak > 0.05, detail: `energy peak ${m.energyPeak}` });
38
+ checks.push({ name: "shake decays", pass: m.energyEnd < m.energyPeak, detail: `end ${m.energyEnd} < peak ${m.energyPeak}` });
39
+ }
40
+ else if (scene.endsWith("flight-bank")) {
41
+ checks.push({ name: "camera banks", pass: Math.max(Math.abs(m.rollRangeDeg[0]), Math.abs(m.rollRangeDeg[1])) > 0.5, detail: `roll ${m.rollRangeDeg[0]}…${m.rollRangeDeg[1]}°` });
42
+ }
43
+ else if (scene.endsWith("collision")) {
44
+ checks.push({ name: "no inside-geometry frames", pass: m.insideColliderSteps === 0, detail: `${m.insideColliderSteps} steps inside a column` });
45
+ checks.push({ name: "probe pulled the eye in", pass: m.eyeToSubject.min < m.eyeToSubject.max - 0.25, detail: `eye→subject ${m.eyeToSubject.min}–${m.eyeToSubject.max}` });
46
+ }
47
+ else if (scene.endsWith("rail-shot")) {
48
+ checks.push({ name: "no knot hitch (hitch < 0.25)", pass: m.hitchRatio < 0.25, detail: `hitch ${m.hitchRatio}` });
49
+ }
50
+ else if (scene.endsWith("pacing-120")) {
51
+ checks.push({ name: "120 Hz presents evenly spaced (step CV < 0.35)", pass: m.subjectStepCv < 0.35, detail: `subject step CV ${m.subjectStepCv}` });
52
+ }
53
+ return checks;
54
+ }
55
+ export function buildMotionReport(report, opts = {}) {
56
+ const scenes = opts.scenes ?? MOTION_SCENE_IDS;
57
+ const engines = opts.engines ?? ["aura3d", "three"];
58
+ const failures = [];
59
+ const rows = [];
60
+ for (const scene of scenes) {
61
+ const entry = report.scenes?.find((candidate) => candidate.scene === scene);
62
+ if (!entry) {
63
+ failures.push(`${scene}: not in report.json`);
64
+ continue;
65
+ }
66
+ for (const engine of engines) {
67
+ const result = entry.engines[engine];
68
+ if (!result) {
69
+ failures.push(`${scene}/${engine}: no capture`);
70
+ continue;
71
+ }
72
+ const motion = result.payload?.extra?.motion;
73
+ const variances = motion?.strip?.lumaVariance ?? [];
74
+ const blankTiles = variances.filter((v) => v <= BLANK_VARIANCE).length;
75
+ const gaps = (result.payload?.capabilityLog ?? []).filter((c) => c.status === "missing" || c.status === "partial").map((c) => `${c.feature} (${c.status}): ${c.detail}`);
76
+ if (result.status !== "ready")
77
+ failures.push(`${scene}/${engine}: status ${result.status}${result.error ? ` — ${result.error.split("\n")[0]}` : ""}`);
78
+ if (!motion)
79
+ failures.push(`${scene}/${engine}: payload.extra.motion missing`);
80
+ else {
81
+ if ((motion.strip?.frames ?? 0) < EXPECTED_STRIP_FRAMES)
82
+ failures.push(`${scene}/${engine}: strip has ${motion.strip?.frames ?? 0}/${EXPECTED_STRIP_FRAMES} tiles`);
83
+ if (blankTiles > 0)
84
+ failures.push(`${scene}/${engine}: ${blankTiles} blank strip tile(s)`);
85
+ if (engine === "aura3d" && motion.cameraLive !== true)
86
+ failures.push(`${scene}/${engine}: app.camera is the stub — capture without --flags camera?`);
87
+ }
88
+ rows.push({
89
+ scene,
90
+ engine,
91
+ status: result.status,
92
+ rig: motion?.rig ?? "-",
93
+ cameraLive: motion?.cameraLive ?? null,
94
+ metrics: motion?.metrics ?? null,
95
+ stripFrames: motion?.strip?.frames ?? 0,
96
+ blankTiles,
97
+ checks: motion ? criterionChecks(scene, motion.metrics) : [],
98
+ gaps,
99
+ ...(motion?.strip?.dataUrl ? { stripDataUrl: motion.strip.dataUrl } : {})
100
+ });
101
+ }
102
+ }
103
+ return { ok: failures.length === 0, failures, rows, gpu: String(report.environment?.gpu?.renderer ?? "unknown"), runId: report.environment?.githubRunId ?? null };
104
+ }
105
+ const fmt = (x) => (x === undefined ? "-" : String(x));
106
+ export function renderMotionMarkdown(result, stripPaths = {}) {
107
+ const lines = [];
108
+ lines.push("# PRD-08 S9 motion report");
109
+ lines.push("");
110
+ lines.push(`- GPU: ${result.gpu}`);
111
+ lines.push(`- GitHub run: ${result.runId ?? "local"}`);
112
+ lines.push(`- Evidence: ${result.ok ? "complete" : "INCOMPLETE"} (${result.rows.length} engine captures)`);
113
+ lines.push("- three.js r0.185.1 rows are C-30 `admittedAsReference` behavioural references on identical scripted inputs — no parity claim.");
114
+ lines.push("- Criterion checks below are review aids for `benchmarks/quality-rebuild/motion/review-rubric.md`, not gates.");
115
+ lines.push("");
116
+ if (result.failures.length > 0) {
117
+ lines.push("## Evidence failures");
118
+ lines.push("");
119
+ for (const failure of result.failures)
120
+ lines.push(`- ${failure}`);
121
+ lines.push("");
122
+ }
123
+ lines.push("## Summary");
124
+ lines.push("");
125
+ lines.push("| scene | engine | status | rig | strip | max eye step | mean eye speed | hitch | fov range | roll range ° | eye→subject min/mean/max | inside steps | energy peak/end | subject step CV |");
126
+ lines.push("|---|---|---|---|---|---|---|---|---|---|---|---|---|---|");
127
+ for (const row of result.rows) {
128
+ const m = row.metrics;
129
+ lines.push(`| ${row.scene} | ${row.engine} | ${row.status} | ${row.rig} | ${row.stripFrames} (${row.blankTiles} blank) | ${fmt(m?.maxEyeStep)} | ${fmt(m?.meanEyeSpeed)} | ${fmt(m?.hitchRatio)} | ${m ? `${m.fovRange[0]}–${m.fovRange[1]}` : "-"} | ${m ? `${m.rollRangeDeg[0]}…${m.rollRangeDeg[1]}` : "-"} | ${m ? `${m.eyeToSubject.min}/${m.eyeToSubject.mean}/${m.eyeToSubject.max}` : "-"} | ${fmt(m?.insideColliderSteps)} | ${m ? `${m.energyPeak}/${m.energyEnd}` : "-"} | ${fmt(m?.subjectStepCv)} |`);
130
+ }
131
+ lines.push("");
132
+ for (const scene of [...new Set(result.rows.map((row) => row.scene))]) {
133
+ lines.push(`## ${scene}`);
134
+ lines.push("");
135
+ for (const row of result.rows.filter((candidate) => candidate.scene === scene)) {
136
+ lines.push(`### ${row.engine}`);
137
+ lines.push("");
138
+ const strip = stripPaths[`${row.scene}.${row.engine}`];
139
+ if (strip)
140
+ lines.push(`![${row.scene} ${row.engine} strip](${strip})`, "");
141
+ for (const check of row.checks)
142
+ lines.push(`- [${check.pass ? "x" : " "}] ${check.name} — ${check.detail}`);
143
+ for (const gap of row.gaps)
144
+ lines.push(`- gap: ${gap}`);
145
+ lines.push("");
146
+ }
147
+ }
148
+ return lines.join("\n");
149
+ }
150
+ function readFlag(argv, name) {
151
+ const index = argv.indexOf(name);
152
+ const value = index >= 0 ? argv[index + 1] : undefined;
153
+ return value && !value.startsWith("--") ? value : undefined;
154
+ }
155
+ export const motionReportCommand = {
156
+ name: "prd08 motion-report",
157
+ owner: "prd08",
158
+ summary: "Render the PRD-08 S9 motion-scene capture report (strips + trajectory metrics) as markdown; fails on incomplete evidence.",
159
+ usage: "aura3d prd08 motion-report [--report <report.json>] [--out <dir>] [--scenes <id,id>] [--engines aura3d,three]",
160
+ async run(argv, io) {
161
+ const reportPath = resolve(io.cwd, readFlag(argv, "--report") ?? DEFAULT_REPORT);
162
+ const outDir = resolve(io.cwd, readFlag(argv, "--out") ?? join(dirname(reportPath), "motion-report"));
163
+ if (!existsSync(reportPath)) {
164
+ io.stderr(`prd08 motion-report: ${reportPath} not found (run capture.mjs for the prd08-motion-* scenes first)`);
165
+ return 1;
166
+ }
167
+ let report;
168
+ try {
169
+ report = JSON.parse(readFileSync(reportPath, "utf8"));
170
+ }
171
+ catch (error) {
172
+ io.stderr(`prd08 motion-report: cannot parse ${reportPath}: ${error instanceof Error ? error.message : String(error)}`);
173
+ return 1;
174
+ }
175
+ const scenes = readFlag(argv, "--scenes")?.split(",").filter(Boolean);
176
+ const engines = readFlag(argv, "--engines")?.split(",").filter(Boolean);
177
+ const result = buildMotionReport(report, { ...(scenes ? { scenes } : {}), ...(engines ? { engines } : {}) });
178
+ mkdirSync(join(outDir, "strips"), { recursive: true });
179
+ const stripPaths = {};
180
+ for (const row of result.rows) {
181
+ const match = row.stripDataUrl?.match(/^data:image\/png;base64,(.+)$/);
182
+ if (!match)
183
+ continue;
184
+ const file = join(outDir, "strips", `${row.scene}.${row.engine}.strip.png`);
185
+ writeFileSync(file, Buffer.from(match[1], "base64"));
186
+ stripPaths[`${row.scene}.${row.engine}`] = relative(outDir, file);
187
+ }
188
+ writeFileSync(join(outDir, "motion-report.md"), renderMotionMarkdown(result, stripPaths));
189
+ const summary = { ...result, rows: result.rows.map(({ stripDataUrl: _strip, ...rest }) => rest) };
190
+ writeFileSync(join(outDir, "motion-report.json"), JSON.stringify(summary, null, 2));
191
+ io.stdout(`prd08 motion-report: ${result.rows.length} captures → ${join(outDir, "motion-report.md")}`);
192
+ for (const failure of result.failures)
193
+ io.stderr(`prd08 motion-report: ${failure}`);
194
+ return result.ok ? 0 : 1;
195
+ }
196
+ };
197
+ //# sourceMappingURL=motionReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motionReport.js","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd08/motionReport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;CACjB,CAAC;AAEX,MAAM,cAAc,GAAG,yDAAyD,CAAC;AACjF,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,cAAc,GAAG,CAAC,CAAC;AAsEzB,SAAS,eAAe,CAAC,KAAa,EAAE,CAAqB;IAC3D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACrI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/H,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnL,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAC,mBAAmB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,mBAAmB,wBAAwB,EAAE,CAAC,CAAC;QAChJ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5K,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpH,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gDAAgD,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,GAAG,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACtJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,OAAsF,EAAE;IACpJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAsB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,cAAc,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,MAAM,CAAC;YACvE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACzK,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtJ,IAAI,CAAC,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,gCAAgC,CAAC,CAAC;iBAC1E,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,qBAAqB;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,eAAe,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,qBAAqB,QAAQ,CAAC,CAAC;gBACpK,IAAI,UAAU,GAAG,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,KAAK,UAAU,sBAAsB,CAAC,CAAC;gBAC3F,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,4DAA4D,CAAC,CAAC;YACvJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG;gBACvB,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;gBAChC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;gBACvC,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5D,IAAI;gBACJ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AACpK,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,UAAU,oBAAoB,CAAC,MAA0B,EAAE,aAA+C,EAAE;IAChH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,gIAAgI,CAAC,CAAC;IAC7I,KAAK,CAAC,IAAI,CAAC,+GAA+G,CAAC,CAAC;IAC5H,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4LAA4L,CAAC,CAAC;IACzM,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACxE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QACtB,KAAK,CAAC,IAAI,CACR,KAAK,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,UAAU,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CACve,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/E,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,WAAW,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3E,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5G,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAuB,EAAE,IAAY;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,2HAA2H;IACpI,KAAK,EAAE,+GAA+G;IACtH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,cAAc,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,wBAAwB,UAAU,kEAAkE,CAAC,CAAC;YAChH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAuB,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,qCAAqC,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7G,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;YAC5E,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,MAAM,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvG,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,EAAE,CAAC,MAAM,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Codemod `prd09-audio-wrapper` (PRD-09 §10 step 5): flags raw DOM/WebAudio
3
+ * entry points for replacement with `game.audio`/`createGameAudio`; rewrites
4
+ * the mechanical cases (`new Audio(`, `document.createElement("audio")`,
5
+ * `new AudioContext(`) and reports the rest.
6
+ */
7
+ import type { AuraCodemod } from "../../../contracts/commands.js";
8
+ export declare const audioWrapperCodemod: AuraCodemod;
9
+ //# sourceMappingURL=audio-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/audio-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,mBAAmB,EAAE,WAyBjC,CAAC"}
@@ -0,0 +1,30 @@
1
+ export const audioWrapperCodemod = {
2
+ name: "prd09-audio-wrapper",
3
+ owner: "prd09",
4
+ description: "Route raw audio entry points through the game audio surface (PRD-09 step 5).",
5
+ transform(source, fileName) {
6
+ const rows = [];
7
+ const out = [];
8
+ source.split("\n").forEach((line, i) => {
9
+ let next = line;
10
+ if (/new\s+Audio\s*\(/.test(line)) {
11
+ next = line.replace(/new\s+Audio\s*\(/, "game.audio.element(");
12
+ rows.push({ file: fileName, line: i + 1, construct: "new Audio(...)", mapping: "approximate", target: "game.audio.element(...)" });
13
+ }
14
+ else if (/document\.createElement\(["']audio["']\)/.test(line)) {
15
+ next = line.replace(/document\.createElement\(["']audio["']\)/, 'game.audio.element()');
16
+ rows.push({ file: fileName, line: i + 1, construct: 'document.createElement("audio")', mapping: "approximate", target: "game.audio.element()" });
17
+ }
18
+ else if (/new\s+AudioContext\s*\(/.test(line)) {
19
+ next = line.replace(/new\s+AudioContext\s*\(/, "game.audio.context(");
20
+ rows.push({ file: fileName, line: i + 1, construct: "new AudioContext(...)", mapping: "approximate", target: "game.audio.context(...)" });
21
+ }
22
+ else if (/HTMLAudioElement|AudioBufferSourceNode|createOscillator|\.play\(\)/.test(line)) {
23
+ rows.push({ file: fileName, line: i + 1, construct: line.trim(), mapping: "none", note: "audio surface — review manually" });
24
+ }
25
+ out.push(next);
26
+ });
27
+ return { code: out.join("\n"), rows };
28
+ }
29
+ };
30
+ //# sourceMappingURL=audio-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-wrapper.js","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/audio-wrapper.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,8EAA8E;IAC3F,SAAS,CAAC,MAAM,EAAE,QAAQ;QACxB,MAAM,IAAI,GAAmI,EAAE,CAAC;QAChJ,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;gBAC/D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;YACrI,CAAC;iBAAM,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0CAA0C,EAAE,sBAAsB,CAAC,CAAC;gBACxF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,iCAAiC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACnJ,CAAC;iBAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;gBACtE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAC5I,CAAC;iBAAM,IAAI,oEAAoE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3F,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Codemod `prd09-capture-branches` (PRD-09 §10 step 3): unwraps
3
+ * `?capture=review`-style branches so the production arm survives and the
4
+ * review arm is dropped. Conservative: only rewrites `cond ? REVIEW : PROD`
5
+ * / `cond ? PROD : REVIEW` ternaries and `if (capture) { ... }` statement
6
+ * blocks it can resolve; everything else is reported as a `none` row.
7
+ */
8
+ import type { AuraCodemod } from "../../../contracts/commands.js";
9
+ export declare const captureBranchesCodemod: AuraCodemod;
10
+ //# sourceMappingURL=capture-branches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-branches.d.ts","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/capture-branches.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,eAAO,MAAM,sBAAsB,EAAE,WAuCpC,CAAC"}
@@ -0,0 +1,54 @@
1
+ const CAPTURE_COND = /(\w+|\([^)]*\))\s*(?:===?\s*|!==?\s*)\s*["']?(?:capture|review)["']?|(?:searchParams|params)\.get\(["']capture["']\)|["']capture=review["']|\b(?:review|capture|isReview|isCapture|captureMode|reviewCapture)\b/i;
2
+ export const captureBranchesCodemod = {
3
+ name: "prd09-capture-branches",
4
+ owner: "prd09",
5
+ description: "Remove `?capture=review` branches; keep the production arm (PRD-09 step 3).",
6
+ transform(source, fileName) {
7
+ const rows = [];
8
+ const lines = source.split("\n");
9
+ const out = [];
10
+ for (let i = 0; i < lines.length; i++) {
11
+ const line = lines[i];
12
+ const ternary = line.match(/(.*)=\s*([^?]+)\?\s*([^:]+):\s*([^;]+)(;.*)$/);
13
+ if (ternary && CAPTURE_COND.test(ternary[2])) {
14
+ const [, lhs, cond, a, b, tail] = ternary;
15
+ // Convention: `captureFlag ? reviewPath : productionPath` — the true
16
+ // arm is entered only when the review flag is set, so the else arm is
17
+ // the shipped behaviour. Textual check is a fallback for inverted
18
+ // conds (`!review ? prod : review`).
19
+ const negated = /^\s*!/.test(cond.trim());
20
+ const aIsReview = /review|capture|preview/i.test(a);
21
+ const bIsReview = /review|capture|preview/i.test(b);
22
+ let keep;
23
+ let note;
24
+ if (aIsReview && !bIsReview) {
25
+ keep = b;
26
+ note = "kept production arm (true arm is review-marked)";
27
+ }
28
+ else if (bIsReview && !aIsReview) {
29
+ keep = a;
30
+ note = "kept production arm (else arm is review-marked)";
31
+ }
32
+ else if (!negated) {
33
+ keep = b;
34
+ note = "kept else arm as production (capture-flag convention)";
35
+ }
36
+ else {
37
+ keep = a;
38
+ note = "kept true arm under negated capture condition";
39
+ }
40
+ out.push(`${lhs}= ${keep.trim()}${tail}`);
41
+ rows.push({ file: fileName, line: i + 1, construct: cond.trim(), mapping: "approximate", target: keep.trim(), note });
42
+ continue;
43
+ }
44
+ if (CAPTURE_COND.test(line) && /(if|else if)\s*\(/.test(line)) {
45
+ rows.push({ file: fileName, line: i + 1, construct: line.trim(), mapping: "none", note: "capture if-branch — delete review arm manually" });
46
+ out.push(line);
47
+ continue;
48
+ }
49
+ out.push(line);
50
+ }
51
+ return { code: out.join("\n"), rows };
52
+ }
53
+ };
54
+ //# sourceMappingURL=capture-branches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-branches.js","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/capture-branches.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Codemod `prd09-evidence-globals` (PRD-09 §10 step 10): rewrites
3
+ * `window.__FOO__ = expr` evidence writes into the pull-model channel
4
+ * `game.evidence.legacyGlobals.set("__FOO__", expr)`.
5
+ */
6
+ import type { AuraCodemod } from "../../../contracts/commands.js";
7
+ export declare const evidenceGlobalsCodemod: AuraCodemod;
8
+ //# sourceMappingURL=evidence-globals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-globals.d.ts","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/evidence-globals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,eAAO,MAAM,sBAAsB,EAAE,WAepC,CAAC"}
@@ -0,0 +1,19 @@
1
+ const GLOBAL_WRITE = /^(\s*)(?:window\s*\.\s*)?(__[A-Z][A-Z0-9_]+__)\s*=\s*(.+);?\s*$/;
2
+ export const evidenceGlobalsCodemod = {
3
+ name: "prd09-evidence-globals",
4
+ owner: "prd09",
5
+ description: "Move `__FOO__` window globals onto `game.evidence.legacyGlobals` (PRD-09 step 10).",
6
+ transform(source, fileName) {
7
+ const rows = [];
8
+ const out = source.split("\n").map((line, i) => {
9
+ const m = line.match(GLOBAL_WRITE);
10
+ if (!m)
11
+ return line;
12
+ const [, indent, name, expr] = m;
13
+ rows.push({ file: fileName, line: i + 1, construct: `${name} = ...`, mapping: "exact", target: `legacyGlobals.set("${name}", ...)` });
14
+ return `${indent}game.evidence.legacyGlobals.set("${name}", ${expr.replace(/;+\s*$/, "")});`;
15
+ });
16
+ return { code: out.join("\n"), rows };
17
+ }
18
+ };
19
+ //# sourceMappingURL=evidence-globals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-globals.js","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/evidence-globals.ts"],"names":[],"mappings":"AAOA,MAAM,YAAY,GAAG,iEAAiE,CAAC;AAEvF,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,oFAAoF;IACjG,SAAS,CAAC,MAAM,EAAE,QAAQ;QACxB,MAAM,IAAI,GAAoH,EAAE,CAAC;QACjI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,IAAI,SAAS,EAAE,CAAC,CAAC;YACtI,OAAO,GAAG,MAAM,oCAAoC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;QAC/F,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Codemod `prd09-perf-script` (PRD-09): removes a route's
3
+ * `evidence:performance` script + the `scripts/write-performance-report.ts`
4
+ * reference from package.json — the shared `aura3d perf-report` replaces it.
5
+ */
6
+ import type { AuraCodemod } from "../../../contracts/commands.js";
7
+ export declare const perfScriptCodemod: AuraCodemod;
8
+ //# sourceMappingURL=perf-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-script.d.ts","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/perf-script.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,iBAAiB,EAAE,WAsB/B,CAAC"}
@@ -0,0 +1,24 @@
1
+ export const perfScriptCodemod = {
2
+ name: "prd09-perf-script",
3
+ owner: "prd09",
4
+ description: "Drop route-local perf-report scripts for `aura3d perf-report` (PRD-09).",
5
+ transform(source, fileName) {
6
+ const rows = [];
7
+ const lines = source.split("\n");
8
+ const out = [];
9
+ for (let i = 0; i < lines.length; i++) {
10
+ const line = lines[i];
11
+ if (/"evidence:performance"|write-performance-report/.test(line)) {
12
+ rows.push({ file: fileName, line: i + 1, construct: line.trim(), mapping: "exact", note: "replaced by `aura3d perf-report --route <id> --telemetry <json>`" });
13
+ // keep JSON valid: drop a trailing comma on the previous emitted line
14
+ if (out.length && /,\s*$/.test(out[out.length - 1]) && (i + 1 >= lines.length || /^\s*[}\]]/.test(lines[i + 1]))) {
15
+ out[out.length - 1] = out[out.length - 1].replace(/,\s*$/, "");
16
+ }
17
+ continue;
18
+ }
19
+ out.push(line);
20
+ }
21
+ return { code: out.join("\n"), rows };
22
+ }
23
+ };
24
+ //# sourceMappingURL=perf-script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-script.js","sourceRoot":"","sources":["../../../../../../../packages/aura3d-cli/src/commands/prd09/codemods/perf-script.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,yEAAyE;IACtF,SAAS,CAAC,MAAM,EAAE,QAAQ;QACxB,MAAM,IAAI,GAAmI,EAAE,CAAC;QAChJ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,kEAAkE,EAAE,CAAC,CAAC;gBAC/J,sEAAsE;gBACtE,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjH,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,SAAS;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * C-39 lane command registrations — prd09 registers its `aura3d` commands
3
+ * here via registerCliCommand (CONTRACTS.md): the `sfx admit` command, the
4
+ * shared `perf-report` command and the four migration codemods whose output
5
+ * regenerates the route patch sets when a route's HEAD moves.
6
+ */
7
+ import "./sfx-admit.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd09/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * C-39 lane command registrations — prd09 registers its `aura3d` commands
3
+ * here via registerCliCommand (CONTRACTS.md): the `sfx admit` command, the
4
+ * shared `perf-report` command and the four migration codemods whose output
5
+ * regenerates the route patch sets when a route's HEAD moves.
6
+ */
7
+ import "./sfx-admit.js";
8
+ import { registerCliCommand, registerCodemod } from "../../contracts/commands.js";
9
+ import { perfReportCommand } from "./perf-report.js";
10
+ import { captureBranchesCodemod } from "./codemods/capture-branches.js";
11
+ import { audioWrapperCodemod } from "./codemods/audio-wrapper.js";
12
+ import { evidenceGlobalsCodemod } from "./codemods/evidence-globals.js";
13
+ import { perfScriptCodemod } from "./codemods/perf-script.js";
14
+ registerCliCommand(perfReportCommand);
15
+ registerCodemod(captureBranchesCodemod);
16
+ registerCodemod(audioWrapperCodemod);
17
+ registerCodemod(evidenceGlobalsCodemod);
18
+ registerCodemod(perfScriptCodemod);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd09/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACtC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACrC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxC,eAAe,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ import type { AuraCliCommand } from "../../contracts/commands.js";
2
+ interface TelemetryPerf {
3
+ /** rAF frame intervals in milliseconds. */
4
+ readonly frameIntervals?: readonly number[];
5
+ readonly samples?: readonly number[];
6
+ }
7
+ interface Telemetry {
8
+ readonly route?: string;
9
+ readonly generatedAt?: string;
10
+ readonly perf?: TelemetryPerf | readonly number[];
11
+ readonly [key: string]: unknown;
12
+ }
13
+ interface SpanSummary {
14
+ readonly samples: number;
15
+ readonly p50Ms: number;
16
+ readonly p95Ms: number;
17
+ readonly meanMs: number;
18
+ }
19
+ interface PerfReport {
20
+ route: string;
21
+ generatedAt: string;
22
+ producer: string;
23
+ perf: {
24
+ samples: number;
25
+ p50Ms: number;
26
+ p95Ms: number;
27
+ p99Ms: number;
28
+ meanMs: number;
29
+ /** Estimated fps derived from interval statistics, not an engine counter. */
30
+ estFps: number;
31
+ jankFrames: number;
32
+ budget: {
33
+ p95Ms: number;
34
+ pass: boolean;
35
+ };
36
+ /** §17 (16.1-8): CPU spans per subsystem, present when telemetry emits them. */
37
+ cpuSpans?: Record<string, SpanSummary>;
38
+ /** p95 of setInstanceTransforms calls, when the harness records them. */
39
+ instanceTransforms?: SpanSummary;
40
+ /** CDP forced-layout trace totals, when captured. */
41
+ forcedLayout?: {
42
+ events: number;
43
+ totalMs: number;
44
+ };
45
+ /** Baseline rAF p50 comparison (16.1-8: pilot p50 ≤ baseline + 0.5 ms). */
46
+ baseline?: {
47
+ p50Ms: number;
48
+ deltaMs: number;
49
+ pass: boolean;
50
+ };
51
+ };
52
+ }
53
+ export declare function buildPerfReport(route: string, telemetry: Telemetry, baselineP50?: number): PerfReport;
54
+ export declare const perfReportCommand: AuraCliCommand;
55
+ export {};
56
+ //# sourceMappingURL=perf-report.d.ts.map