unity-open-mcp 0.6.1 → 0.8.2

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 (899) hide show
  1. package/README.md +15 -67
  2. package/dist/batch-spawn.d.ts +12 -0
  3. package/dist/batch-spawn.js +127 -20
  4. package/dist/batch-spawn.js.map +1 -1
  5. package/dist/bridge-tools-cache.d.ts +46 -0
  6. package/dist/bridge-tools-cache.js +83 -0
  7. package/dist/bridge-tools-cache.js.map +1 -0
  8. package/dist/capabilities/build-capabilities.d.ts +39 -5
  9. package/dist/capabilities/build-capabilities.js +190 -452
  10. package/dist/capabilities/build-capabilities.js.map +1 -1
  11. package/dist/capabilities/intent-groups.d.ts +99 -0
  12. package/dist/capabilities/intent-groups.js +518 -0
  13. package/dist/capabilities/intent-groups.js.map +1 -0
  14. package/dist/capabilities/lifecycle.js +1 -1
  15. package/dist/capabilities/lifecycle.js.map +1 -1
  16. package/dist/capabilities/list-rules.js +12 -20
  17. package/dist/capabilities/list-rules.js.map +1 -1
  18. package/dist/capabilities/rule-catalog.d.ts +22 -1
  19. package/dist/capabilities/rule-catalog.js +53 -20
  20. package/dist/capabilities/rule-catalog.js.map +1 -1
  21. package/dist/capabilities/tool-groups.d.ts +14 -13
  22. package/dist/capabilities/tool-groups.js +47 -22
  23. package/dist/capabilities/tool-groups.js.map +1 -1
  24. package/dist/cli/cli.js +65 -8
  25. package/dist/cli/cli.js.map +1 -1
  26. package/dist/cli/commands.d.ts +20 -0
  27. package/dist/cli/commands.js +142 -73
  28. package/dist/cli/commands.js.map +1 -1
  29. package/dist/cli/help-text.d.ts +2 -0
  30. package/dist/cli/help-text.js +77 -0
  31. package/dist/cli/help-text.js.map +1 -0
  32. package/dist/cli/ping-poller.d.ts +7 -5
  33. package/dist/cli/ping-poller.js +16 -15
  34. package/dist/cli/ping-poller.js.map +1 -1
  35. package/dist/compressible-router.d.ts +9 -2
  36. package/dist/compressible-router.js +70 -7
  37. package/dist/compressible-router.js.map +1 -1
  38. package/dist/compression/compact.d.ts +1 -0
  39. package/dist/compression/compact.js +82 -14
  40. package/dist/compression/compact.js.map +1 -1
  41. package/dist/dialog-dismiss.d.ts +10 -0
  42. package/dist/dialog-dismiss.js +110 -10
  43. package/dist/dialog-dismiss.js.map +1 -1
  44. package/dist/editor-process-control.d.ts +68 -0
  45. package/dist/editor-process-control.js +249 -0
  46. package/dist/editor-process-control.js.map +1 -0
  47. package/dist/event-stream.d.ts +2 -1
  48. package/dist/event-stream.js +43 -8
  49. package/dist/event-stream.js.map +1 -1
  50. package/dist/index.d.ts +1 -2
  51. package/dist/index.js +18 -142
  52. package/dist/index.js.map +1 -1
  53. package/dist/live-client.d.ts +52 -10
  54. package/dist/live-client.js +399 -42
  55. package/dist/live-client.js.map +1 -1
  56. package/dist/offline/api.js +336 -91
  57. package/dist/offline/api.js.map +1 -1
  58. package/dist/offline/hierarchy.js +100 -3
  59. package/dist/offline/hierarchy.js.map +1 -1
  60. package/dist/offline/index-builders.d.ts +120 -2
  61. package/dist/offline/index-builders.js +374 -35
  62. package/dist/offline/index-builders.js.map +1 -1
  63. package/dist/offline/overrides.js +5 -1
  64. package/dist/offline/overrides.js.map +1 -1
  65. package/dist/offline/parse.js +21 -9
  66. package/dist/offline/parse.js.map +1 -1
  67. package/dist/offline/paths.d.ts +32 -0
  68. package/dist/offline/paths.js +71 -2
  69. package/dist/offline/paths.js.map +1 -1
  70. package/dist/offline/primitives.d.ts +15 -0
  71. package/dist/offline/primitives.js +130 -6
  72. package/dist/offline/primitives.js.map +1 -1
  73. package/dist/offline/types.d.ts +29 -0
  74. package/dist/offline/types.js.map +1 -1
  75. package/dist/ping-cache.d.ts +35 -0
  76. package/dist/ping-cache.js +70 -0
  77. package/dist/ping-cache.js.map +1 -1
  78. package/dist/process-diagnostics.d.ts +146 -0
  79. package/dist/process-diagnostics.js +333 -0
  80. package/dist/process-diagnostics.js.map +1 -0
  81. package/dist/schema-defaults.d.ts +11 -0
  82. package/dist/schema-defaults.js +32 -1
  83. package/dist/schema-defaults.js.map +1 -1
  84. package/dist/server-instructions.js +7 -2
  85. package/dist/server-instructions.js.map +1 -1
  86. package/dist/server.d.ts +17 -0
  87. package/dist/server.js +195 -0
  88. package/dist/server.js.map +1 -0
  89. package/dist/skill/client-paths.d.ts +23 -0
  90. package/dist/skill/client-paths.js +46 -1
  91. package/dist/skill/client-paths.js.map +1 -1
  92. package/dist/tool-router.d.ts +55 -0
  93. package/dist/tool-router.js +782 -188
  94. package/dist/tool-router.js.map +1 -1
  95. package/dist/tool-session-state.d.ts +82 -10
  96. package/dist/tool-session-state.js +134 -22
  97. package/dist/tool-session-state.js.map +1 -1
  98. package/dist/tools/agent-capabilities.d.ts +40 -2
  99. package/dist/tools/agent-capabilities.js +16 -21
  100. package/dist/tools/agent-capabilities.js.map +1 -1
  101. package/dist/tools/animation-create.d.ts +40 -2
  102. package/dist/tools/animation-create.js +17 -26
  103. package/dist/tools/animation-create.js.map +1 -1
  104. package/dist/tools/animation-get-data.d.ts +40 -2
  105. package/dist/tools/animation-get-data.js +13 -18
  106. package/dist/tools/animation-get-data.js.map +1 -1
  107. package/dist/tools/animation-modify.d.ts +40 -2
  108. package/dist/tools/animation-modify.js +31 -40
  109. package/dist/tools/animation-modify.js.map +1 -1
  110. package/dist/tools/animator-create.d.ts +40 -2
  111. package/dist/tools/animator-create.js +17 -26
  112. package/dist/tools/animator-create.js.map +1 -1
  113. package/dist/tools/animator-get-data.d.ts +40 -2
  114. package/dist/tools/animator-get-data.js +13 -18
  115. package/dist/tools/animator-get-data.js.map +1 -1
  116. package/dist/tools/animator-modify.d.ts +40 -2
  117. package/dist/tools/animator-modify.js +37 -46
  118. package/dist/tools/animator-modify.js.map +1 -1
  119. package/dist/tools/apply-fix.d.ts +40 -2
  120. package/dist/tools/apply-fix.js +41 -52
  121. package/dist/tools/apply-fix.js.map +1 -1
  122. package/dist/tools/asmdef-create.d.ts +40 -2
  123. package/dist/tools/asmdef-create.js +82 -100
  124. package/dist/tools/asmdef-create.js.map +1 -1
  125. package/dist/tools/asmdef-get.d.ts +40 -2
  126. package/dist/tools/asmdef-get.js +14 -19
  127. package/dist/tools/asmdef-get.js.map +1 -1
  128. package/dist/tools/asmdef-list.d.ts +40 -2
  129. package/dist/tools/asmdef-list.js +25 -30
  130. package/dist/tools/asmdef-list.js.map +1 -1
  131. package/dist/tools/asmdef-modify.d.ts +40 -2
  132. package/dist/tools/asmdef-modify.js +76 -94
  133. package/dist/tools/asmdef-modify.js.map +1 -1
  134. package/dist/tools/assets-copy.d.ts +40 -2
  135. package/dist/tools/assets-copy.js +26 -38
  136. package/dist/tools/assets-copy.js.map +1 -1
  137. package/dist/tools/assets-create-folder.d.ts +40 -2
  138. package/dist/tools/assets-create-folder.js +28 -41
  139. package/dist/tools/assets-create-folder.js.map +1 -1
  140. package/dist/tools/assets-delete.d.ts +40 -2
  141. package/dist/tools/assets-delete.js +16 -28
  142. package/dist/tools/assets-delete.js.map +1 -1
  143. package/dist/tools/assets-move.d.ts +40 -2
  144. package/dist/tools/assets-move.js +27 -39
  145. package/dist/tools/assets-move.js.map +1 -1
  146. package/dist/tools/assets-refresh.d.ts +40 -2
  147. package/dist/tools/assets-refresh.js +16 -28
  148. package/dist/tools/assets-refresh.js.map +1 -1
  149. package/dist/tools/audio-listener-get.d.ts +40 -2
  150. package/dist/tools/audio-listener-get.js +8 -13
  151. package/dist/tools/audio-listener-get.js.map +1 -1
  152. package/dist/tools/audio-mixer-get-parameter.d.ts +40 -2
  153. package/dist/tools/audio-mixer-get-parameter.js +15 -20
  154. package/dist/tools/audio-mixer-get-parameter.js.map +1 -1
  155. package/dist/tools/audio-mixer-set-parameter.d.ts +40 -2
  156. package/dist/tools/audio-mixer-set-parameter.js +29 -38
  157. package/dist/tools/audio-mixer-set-parameter.js.map +1 -1
  158. package/dist/tools/audio-source-add.d.ts +40 -2
  159. package/dist/tools/audio-source-add.js +58 -70
  160. package/dist/tools/audio-source-add.js.map +1 -1
  161. package/dist/tools/audio-source-modify.d.ts +40 -2
  162. package/dist/tools/audio-source-modify.js +36 -46
  163. package/dist/tools/audio-source-modify.js.map +1 -1
  164. package/dist/tools/baseline-create.d.ts +40 -2
  165. package/dist/tools/baseline-create.js +12 -17
  166. package/dist/tools/baseline-create.js.map +1 -1
  167. package/dist/tools/batch-execute.d.ts +40 -2
  168. package/dist/tools/batch-execute.js +64 -68
  169. package/dist/tools/batch-execute.js.map +1 -1
  170. package/dist/tools/bridge-status.d.ts +40 -2
  171. package/dist/tools/bridge-status.js +34 -40
  172. package/dist/tools/bridge-status.js.map +1 -1
  173. package/dist/tools/build-get-active-target.d.ts +40 -2
  174. package/dist/tools/build-get-active-target.js +7 -12
  175. package/dist/tools/build-get-active-target.js.map +1 -1
  176. package/dist/tools/build-get-defines.d.ts +40 -2
  177. package/dist/tools/build-get-defines.js +7 -12
  178. package/dist/tools/build-get-defines.js.map +1 -1
  179. package/dist/tools/build-get-scenes.d.ts +40 -2
  180. package/dist/tools/build-get-scenes.js +7 -12
  181. package/dist/tools/build-get-scenes.js.map +1 -1
  182. package/dist/tools/build-get-targets.d.ts +40 -2
  183. package/dist/tools/build-get-targets.js +8 -13
  184. package/dist/tools/build-get-targets.js.map +1 -1
  185. package/dist/tools/build-set-defines.d.ts +40 -2
  186. package/dist/tools/build-set-defines.js +22 -40
  187. package/dist/tools/build-set-defines.js.map +1 -1
  188. package/dist/tools/build-set-scenes.d.ts +40 -2
  189. package/dist/tools/build-set-scenes.js +36 -49
  190. package/dist/tools/build-set-scenes.js.map +1 -1
  191. package/dist/tools/build-set-target.d.ts +40 -2
  192. package/dist/tools/build-set-target.js +17 -38
  193. package/dist/tools/build-set-target.js.map +1 -1
  194. package/dist/tools/build-start.d.ts +40 -2
  195. package/dist/tools/build-start.js +34 -50
  196. package/dist/tools/build-start.js.map +1 -1
  197. package/dist/tools/capture-inline.d.ts +40 -2
  198. package/dist/tools/capture-inline.js +43 -48
  199. package/dist/tools/capture-inline.js.map +1 -1
  200. package/dist/tools/checkpoint-create.d.ts +40 -2
  201. package/dist/tools/checkpoint-create.js +13 -13
  202. package/dist/tools/checkpoint-create.js.map +1 -1
  203. package/dist/tools/cinemachine-brain-ensure.d.ts +40 -2
  204. package/dist/tools/cinemachine-brain-ensure.js +14 -23
  205. package/dist/tools/cinemachine-brain-ensure.js.map +1 -1
  206. package/dist/tools/cinemachine-camera-list.d.ts +40 -2
  207. package/dist/tools/cinemachine-camera-list.js +6 -11
  208. package/dist/tools/cinemachine-camera-list.js.map +1 -1
  209. package/dist/tools/cinemachine-create-camera.d.ts +40 -2
  210. package/dist/tools/cinemachine-create-camera.js +38 -47
  211. package/dist/tools/cinemachine-create-camera.js.map +1 -1
  212. package/dist/tools/cinemachine-set-body.d.ts +40 -2
  213. package/dist/tools/cinemachine-set-body.js +20 -29
  214. package/dist/tools/cinemachine-set-body.js.map +1 -1
  215. package/dist/tools/cinemachine-set-lens.d.ts +40 -2
  216. package/dist/tools/cinemachine-set-lens.js +28 -37
  217. package/dist/tools/cinemachine-set-lens.js.map +1 -1
  218. package/dist/tools/cinemachine-set-noise.d.ts +40 -2
  219. package/dist/tools/cinemachine-set-noise.js +18 -27
  220. package/dist/tools/cinemachine-set-noise.js.map +1 -1
  221. package/dist/tools/cinemachine-set-targets.d.ts +40 -2
  222. package/dist/tools/cinemachine-set-targets.js +17 -26
  223. package/dist/tools/cinemachine-set-targets.js.map +1 -1
  224. package/dist/tools/compile-check.d.ts +40 -2
  225. package/dist/tools/compile-check.js +18 -23
  226. package/dist/tools/compile-check.js.map +1 -1
  227. package/dist/tools/component-add.d.ts +40 -2
  228. package/dist/tools/component-add.js +30 -42
  229. package/dist/tools/component-add.js.map +1 -1
  230. package/dist/tools/component-destroy.d.ts +40 -2
  231. package/dist/tools/component-destroy.js +29 -41
  232. package/dist/tools/component-destroy.js.map +1 -1
  233. package/dist/tools/component-get.d.ts +40 -2
  234. package/dist/tools/component-get.js +77 -82
  235. package/dist/tools/component-get.js.map +1 -1
  236. package/dist/tools/component-list-all.d.ts +40 -2
  237. package/dist/tools/component-list-all.js +29 -34
  238. package/dist/tools/component-list-all.js.map +1 -1
  239. package/dist/tools/component-modify.d.ts +40 -2
  240. package/dist/tools/component-modify.js +60 -72
  241. package/dist/tools/component-modify.js.map +1 -1
  242. package/dist/tools/console-clear.d.ts +40 -2
  243. package/dist/tools/console-clear.js +9 -14
  244. package/dist/tools/console-clear.js.map +1 -1
  245. package/dist/tools/console-log.d.ts +40 -2
  246. package/dist/tools/console-log.js +34 -39
  247. package/dist/tools/console-log.js.map +1 -1
  248. package/dist/tools/constraint-add.d.ts +40 -2
  249. package/dist/tools/constraint-add.js +49 -61
  250. package/dist/tools/constraint-add.js.map +1 -1
  251. package/dist/tools/delta.d.ts +40 -2
  252. package/dist/tools/delta.js +10 -14
  253. package/dist/tools/delta.js.map +1 -1
  254. package/dist/tools/dependencies.d.ts +40 -2
  255. package/dist/tools/dependencies.js +55 -57
  256. package/dist/tools/dependencies.js.map +1 -1
  257. package/dist/tools/editor-add-layer.d.ts +40 -2
  258. package/dist/tools/editor-add-layer.js +30 -43
  259. package/dist/tools/editor-add-layer.js.map +1 -1
  260. package/dist/tools/editor-add-tag.d.ts +40 -2
  261. package/dist/tools/editor-add-tag.js +20 -33
  262. package/dist/tools/editor-add-tag.js.map +1 -1
  263. package/dist/tools/editor-clear-history.d.ts +40 -2
  264. package/dist/tools/editor-clear-history.js +9 -21
  265. package/dist/tools/editor-clear-history.js.map +1 -1
  266. package/dist/tools/editor-get-layers.d.ts +40 -2
  267. package/dist/tools/editor-get-layers.js +12 -17
  268. package/dist/tools/editor-get-layers.js.map +1 -1
  269. package/dist/tools/editor-get-tags.d.ts +40 -2
  270. package/dist/tools/editor-get-tags.js +10 -15
  271. package/dist/tools/editor-get-tags.js.map +1 -1
  272. package/dist/tools/editor-redo.d.ts +40 -2
  273. package/dist/tools/editor-redo.js +15 -20
  274. package/dist/tools/editor-redo.js.map +1 -1
  275. package/dist/tools/editor-set-state.d.ts +40 -2
  276. package/dist/tools/editor-set-state.js +33 -42
  277. package/dist/tools/editor-set-state.js.map +1 -1
  278. package/dist/tools/editor-status.d.ts +40 -2
  279. package/dist/tools/editor-status.js +9 -14
  280. package/dist/tools/editor-status.js.map +1 -1
  281. package/dist/tools/editor-undo-history.d.ts +40 -2
  282. package/dist/tools/editor-undo-history.js +11 -16
  283. package/dist/tools/editor-undo-history.js.map +1 -1
  284. package/dist/tools/editor-undo.d.ts +40 -2
  285. package/dist/tools/editor-undo.js +17 -22
  286. package/dist/tools/editor-undo.js.map +1 -1
  287. package/dist/tools/editorprefs-delete.d.ts +40 -2
  288. package/dist/tools/editorprefs-delete.js +12 -17
  289. package/dist/tools/editorprefs-delete.js.map +1 -1
  290. package/dist/tools/editorprefs-get.d.ts +40 -2
  291. package/dist/tools/editorprefs-get.js +17 -22
  292. package/dist/tools/editorprefs-get.js.map +1 -1
  293. package/dist/tools/editorprefs-set.d.ts +40 -2
  294. package/dist/tools/editorprefs-set.js +22 -27
  295. package/dist/tools/editorprefs-set.js.map +1 -1
  296. package/dist/tools/execute-csharp.d.ts +40 -2
  297. package/dist/tools/execute-csharp.js +44 -71
  298. package/dist/tools/execute-csharp.js.map +1 -1
  299. package/dist/tools/execute-menu.d.ts +40 -2
  300. package/dist/tools/execute-menu.js +12 -37
  301. package/dist/tools/execute-menu.js.map +1 -1
  302. package/dist/tools/find-members.d.ts +40 -2
  303. package/dist/tools/find-members.js +41 -46
  304. package/dist/tools/find-members.js.map +1 -1
  305. package/dist/tools/find-references.d.ts +40 -2
  306. package/dist/tools/find-references.js +48 -46
  307. package/dist/tools/find-references.js.map +1 -1
  308. package/dist/tools/frame-debugger.d.ts +40 -2
  309. package/dist/tools/frame-debugger.js +27 -32
  310. package/dist/tools/frame-debugger.js.map +1 -1
  311. package/dist/tools/gameobject-create.d.ts +40 -2
  312. package/dist/tools/gameobject-create.js +44 -56
  313. package/dist/tools/gameobject-create.js.map +1 -1
  314. package/dist/tools/gameobject-destroy.d.ts +40 -2
  315. package/dist/tools/gameobject-destroy.js +21 -33
  316. package/dist/tools/gameobject-destroy.js.map +1 -1
  317. package/dist/tools/gameobject-duplicate.d.ts +40 -2
  318. package/dist/tools/gameobject-duplicate.js +23 -35
  319. package/dist/tools/gameobject-duplicate.js.map +1 -1
  320. package/dist/tools/gameobject-find.d.ts +40 -2
  321. package/dist/tools/gameobject-find.js +49 -54
  322. package/dist/tools/gameobject-find.js.map +1 -1
  323. package/dist/tools/gameobject-modify.d.ts +40 -2
  324. package/dist/tools/gameobject-modify.js +101 -113
  325. package/dist/tools/gameobject-modify.js.map +1 -1
  326. package/dist/tools/gameobject-set-parent.d.ts +40 -2
  327. package/dist/tools/gameobject-set-parent.js +42 -50
  328. package/dist/tools/gameobject-set-parent.js.map +1 -1
  329. package/dist/tools/gate-budget-estimate.d.ts +40 -2
  330. package/dist/tools/gate-budget-estimate.js +35 -40
  331. package/dist/tools/gate-budget-estimate.js.map +1 -1
  332. package/dist/tools/generate-skill.d.ts +40 -2
  333. package/dist/tools/generate-skill.js +30 -35
  334. package/dist/tools/generate-skill.js.map +1 -1
  335. package/dist/tools/hub-available-releases.d.ts +40 -2
  336. package/dist/tools/hub-available-releases.js +12 -17
  337. package/dist/tools/hub-available-releases.js.map +1 -1
  338. package/dist/tools/hub-get-install-path.d.ts +40 -2
  339. package/dist/tools/hub-get-install-path.js +11 -16
  340. package/dist/tools/hub-get-install-path.js.map +1 -1
  341. package/dist/tools/hub-install-editor.d.ts +40 -2
  342. package/dist/tools/hub-install-editor.js +29 -34
  343. package/dist/tools/hub-install-editor.js.map +1 -1
  344. package/dist/tools/hub-install-modules.d.ts +40 -2
  345. package/dist/tools/hub-install-modules.js +31 -36
  346. package/dist/tools/hub-install-modules.js.map +1 -1
  347. package/dist/tools/hub-list-editors.d.ts +40 -2
  348. package/dist/tools/hub-list-editors.js +14 -19
  349. package/dist/tools/hub-list-editors.js.map +1 -1
  350. package/dist/tools/hub-set-install-path.d.ts +40 -2
  351. package/dist/tools/hub-set-install-path.js +18 -23
  352. package/dist/tools/hub-set-install-path.js.map +1 -1
  353. package/dist/tools/impact-preview.d.ts +40 -2
  354. package/dist/tools/impact-preview.js +31 -36
  355. package/dist/tools/impact-preview.js.map +1 -1
  356. package/dist/tools/index.d.ts +1 -0
  357. package/dist/tools/index.js +17 -0
  358. package/dist/tools/index.js.map +1 -1
  359. package/dist/tools/inputsystem-action-add.d.ts +40 -2
  360. package/dist/tools/inputsystem-action-add.js +48 -57
  361. package/dist/tools/inputsystem-action-add.js.map +1 -1
  362. package/dist/tools/inputsystem-actionmap-add.d.ts +40 -2
  363. package/dist/tools/inputsystem-actionmap-add.js +17 -26
  364. package/dist/tools/inputsystem-actionmap-add.js.map +1 -1
  365. package/dist/tools/inputsystem-asset-create.d.ts +40 -2
  366. package/dist/tools/inputsystem-asset-create.js +19 -28
  367. package/dist/tools/inputsystem-asset-create.js.map +1 -1
  368. package/dist/tools/inputsystem-binding-add.d.ts +40 -2
  369. package/dist/tools/inputsystem-binding-add.js +34 -43
  370. package/dist/tools/inputsystem-binding-add.js.map +1 -1
  371. package/dist/tools/inputsystem-binding-composite-add.d.ts +40 -2
  372. package/dist/tools/inputsystem-binding-composite-add.js +37 -46
  373. package/dist/tools/inputsystem-binding-composite-add.js.map +1 -1
  374. package/dist/tools/inputsystem-controlscheme-add.d.ts +40 -2
  375. package/dist/tools/inputsystem-controlscheme-add.js +29 -38
  376. package/dist/tools/inputsystem-controlscheme-add.js.map +1 -1
  377. package/dist/tools/inputsystem-get.d.ts +40 -2
  378. package/dist/tools/inputsystem-get.js +12 -17
  379. package/dist/tools/inputsystem-get.js.map +1 -1
  380. package/dist/tools/invoke-method.d.ts +40 -2
  381. package/dist/tools/invoke-method.js +73 -91
  382. package/dist/tools/invoke-method.js.map +1 -1
  383. package/dist/tools/light-add.d.ts +40 -2
  384. package/dist/tools/light-add.js +38 -50
  385. package/dist/tools/light-add.js.map +1 -1
  386. package/dist/tools/light-modify.d.ts +40 -2
  387. package/dist/tools/light-modify.js +22 -31
  388. package/dist/tools/light-modify.js.map +1 -1
  389. package/dist/tools/light-set.d.ts +40 -2
  390. package/dist/tools/light-set.js +40 -49
  391. package/dist/tools/light-set.js.map +1 -1
  392. package/dist/tools/list-assets-of-type.d.ts +40 -2
  393. package/dist/tools/list-assets-of-type.js +37 -42
  394. package/dist/tools/list-assets-of-type.js.map +1 -1
  395. package/dist/tools/list-assets.d.ts +40 -2
  396. package/dist/tools/list-assets.js +19 -24
  397. package/dist/tools/list-assets.js.map +1 -1
  398. package/dist/tools/list-rules.d.ts +40 -2
  399. package/dist/tools/list-rules.js +19 -24
  400. package/dist/tools/list-rules.js.map +1 -1
  401. package/dist/tools/lod-add-level.d.ts +40 -2
  402. package/dist/tools/lod-add-level.js +31 -43
  403. package/dist/tools/lod-add-level.js.map +1 -1
  404. package/dist/tools/lod-group-configure.d.ts +40 -2
  405. package/dist/tools/lod-group-configure.js +30 -42
  406. package/dist/tools/lod-group-configure.js.map +1 -1
  407. package/dist/tools/manage-tools.d.ts +40 -2
  408. package/dist/tools/manage-tools.js +72 -38
  409. package/dist/tools/manage-tools.js.map +1 -1
  410. package/dist/tools/material-create.d.ts +40 -2
  411. package/dist/tools/material-create.js +30 -31
  412. package/dist/tools/material-create.js.map +1 -1
  413. package/dist/tools/material-get-keywords.d.ts +40 -2
  414. package/dist/tools/material-get-keywords.js +14 -19
  415. package/dist/tools/material-get-keywords.js.map +1 -1
  416. package/dist/tools/material-get-properties.d.ts +40 -2
  417. package/dist/tools/material-get-properties.js +21 -26
  418. package/dist/tools/material-get-properties.js.map +1 -1
  419. package/dist/tools/material-set-keyword.d.ts +40 -2
  420. package/dist/tools/material-set-keyword.js +26 -38
  421. package/dist/tools/material-set-keyword.js.map +1 -1
  422. package/dist/tools/material-set-property.d.ts +40 -2
  423. package/dist/tools/material-set-property.js +35 -47
  424. package/dist/tools/material-set-property.js.map +1 -1
  425. package/dist/tools/material-set-shader.d.ts +40 -2
  426. package/dist/tools/material-set-shader.js +23 -35
  427. package/dist/tools/material-set-shader.js.map +1 -1
  428. package/dist/tools/memory-snapshot-capture.d.ts +40 -2
  429. package/dist/tools/memory-snapshot-capture.js +37 -42
  430. package/dist/tools/memory-snapshot-capture.js.map +1 -1
  431. package/dist/tools/mutation-explain.d.ts +40 -2
  432. package/dist/tools/mutation-explain.js +19 -24
  433. package/dist/tools/mutation-explain.js.map +1 -1
  434. package/dist/tools/navigation-agent-add.d.ts +40 -2
  435. package/dist/tools/navigation-agent-add.js +24 -33
  436. package/dist/tools/navigation-agent-add.js.map +1 -1
  437. package/dist/tools/navigation-agent-set-destination.d.ts +40 -2
  438. package/dist/tools/navigation-agent-set-destination.js +18 -27
  439. package/dist/tools/navigation-agent-set-destination.js.map +1 -1
  440. package/dist/tools/navigation-get.d.ts +40 -2
  441. package/dist/tools/navigation-get.js +11 -16
  442. package/dist/tools/navigation-get.js.map +1 -1
  443. package/dist/tools/navigation-link-add.d.ts +40 -2
  444. package/dist/tools/navigation-link-add.js +43 -52
  445. package/dist/tools/navigation-link-add.js.map +1 -1
  446. package/dist/tools/navigation-list.d.ts +40 -2
  447. package/dist/tools/navigation-list.js +8 -13
  448. package/dist/tools/navigation-list.js.map +1 -1
  449. package/dist/tools/navigation-modifier-add.d.ts +40 -2
  450. package/dist/tools/navigation-modifier-add.js +28 -37
  451. package/dist/tools/navigation-modifier-add.js.map +1 -1
  452. package/dist/tools/navigation-modifier-volume-add.d.ts +40 -2
  453. package/dist/tools/navigation-modifier-volume-add.js +27 -36
  454. package/dist/tools/navigation-modifier-volume-add.js.map +1 -1
  455. package/dist/tools/navigation-modify.d.ts +40 -2
  456. package/dist/tools/navigation-modify.js +33 -42
  457. package/dist/tools/navigation-modify.js.map +1 -1
  458. package/dist/tools/navigation-set-bake-settings.d.ts +40 -2
  459. package/dist/tools/navigation-set-bake-settings.js +27 -36
  460. package/dist/tools/navigation-set-bake-settings.js.map +1 -1
  461. package/dist/tools/navigation-surface-add.d.ts +40 -2
  462. package/dist/tools/navigation-surface-add.js +27 -39
  463. package/dist/tools/navigation-surface-add.js.map +1 -1
  464. package/dist/tools/navigation-surface-bake.d.ts +40 -2
  465. package/dist/tools/navigation-surface-bake.js +15 -24
  466. package/dist/tools/navigation-surface-bake.js.map +1 -1
  467. package/dist/tools/object-get-data.d.ts +40 -2
  468. package/dist/tools/object-get-data.js +44 -49
  469. package/dist/tools/object-get-data.js.map +1 -1
  470. package/dist/tools/object-modify.d.ts +40 -2
  471. package/dist/tools/object-modify.js +48 -60
  472. package/dist/tools/object-modify.js.map +1 -1
  473. package/dist/tools/package-add.d.ts +40 -2
  474. package/dist/tools/package-add.js +20 -35
  475. package/dist/tools/package-add.js.map +1 -1
  476. package/dist/tools/package-check.d.ts +40 -2
  477. package/dist/tools/package-check.js +15 -20
  478. package/dist/tools/package-check.js.map +1 -1
  479. package/dist/tools/package-get-dependencies.d.ts +40 -2
  480. package/dist/tools/package-get-dependencies.js +8 -13
  481. package/dist/tools/package-get-dependencies.js.map +1 -1
  482. package/dist/tools/package-get-info.d.ts +40 -2
  483. package/dist/tools/package-get-info.js +21 -26
  484. package/dist/tools/package-get-info.js.map +1 -1
  485. package/dist/tools/package-list.d.ts +40 -2
  486. package/dist/tools/package-list.js +45 -50
  487. package/dist/tools/package-list.js.map +1 -1
  488. package/dist/tools/package-remove.d.ts +40 -2
  489. package/dist/tools/package-remove.js +18 -33
  490. package/dist/tools/package-remove.js.map +1 -1
  491. package/dist/tools/package-search.d.ts +40 -2
  492. package/dist/tools/package-search.js +29 -34
  493. package/dist/tools/package-search.js.map +1 -1
  494. package/dist/tools/particle-system-get.d.ts +40 -2
  495. package/dist/tools/particle-system-get.js +24 -29
  496. package/dist/tools/particle-system-get.js.map +1 -1
  497. package/dist/tools/particle-system-modify.d.ts +40 -2
  498. package/dist/tools/particle-system-modify.js +50 -59
  499. package/dist/tools/particle-system-modify.js.map +1 -1
  500. package/dist/tools/ping.d.ts +40 -2
  501. package/dist/tools/ping.js +4 -9
  502. package/dist/tools/ping.js.map +1 -1
  503. package/dist/tools/playerprefs-delete.d.ts +40 -2
  504. package/dist/tools/playerprefs-delete.js +13 -18
  505. package/dist/tools/playerprefs-delete.js.map +1 -1
  506. package/dist/tools/playerprefs-get.d.ts +40 -2
  507. package/dist/tools/playerprefs-get.js +17 -22
  508. package/dist/tools/playerprefs-get.js.map +1 -1
  509. package/dist/tools/playerprefs-set.d.ts +40 -2
  510. package/dist/tools/playerprefs-set.js +25 -30
  511. package/dist/tools/playerprefs-set.js.map +1 -1
  512. package/dist/tools/prefab-apply.d.ts +40 -2
  513. package/dist/tools/prefab-apply.js +22 -34
  514. package/dist/tools/prefab-apply.js.map +1 -1
  515. package/dist/tools/prefab-close.d.ts +40 -2
  516. package/dist/tools/prefab-close.js +13 -25
  517. package/dist/tools/prefab-close.js.map +1 -1
  518. package/dist/tools/prefab-create.d.ts +40 -2
  519. package/dist/tools/prefab-create.js +35 -47
  520. package/dist/tools/prefab-create.js.map +1 -1
  521. package/dist/tools/prefab-get-overrides.d.ts +40 -2
  522. package/dist/tools/prefab-get-overrides.js +18 -23
  523. package/dist/tools/prefab-get-overrides.js.map +1 -1
  524. package/dist/tools/prefab-instantiate.d.ts +40 -2
  525. package/dist/tools/prefab-instantiate.js +35 -47
  526. package/dist/tools/prefab-instantiate.js.map +1 -1
  527. package/dist/tools/prefab-open.d.ts +40 -2
  528. package/dist/tools/prefab-open.js +12 -24
  529. package/dist/tools/prefab-open.js.map +1 -1
  530. package/dist/tools/prefab-revert.d.ts +40 -2
  531. package/dist/tools/prefab-revert.js +21 -33
  532. package/dist/tools/prefab-revert.js.map +1 -1
  533. package/dist/tools/prefab-save.d.ts +40 -2
  534. package/dist/tools/prefab-save.js +8 -20
  535. package/dist/tools/prefab-save.js.map +1 -1
  536. package/dist/tools/prefab-status.d.ts +40 -2
  537. package/dist/tools/prefab-status.js +18 -23
  538. package/dist/tools/prefab-status.js.map +1 -1
  539. package/dist/tools/prefab-unpack.d.ts +40 -2
  540. package/dist/tools/prefab-unpack.js +27 -39
  541. package/dist/tools/prefab-unpack.js.map +1 -1
  542. package/dist/tools/probuilder-create-shape.d.ts +40 -2
  543. package/dist/tools/probuilder-create-shape.js +24 -33
  544. package/dist/tools/probuilder-create-shape.js.map +1 -1
  545. package/dist/tools/probuilder-delete-faces.d.ts +40 -2
  546. package/dist/tools/probuilder-delete-faces.js +24 -33
  547. package/dist/tools/probuilder-delete-faces.js.map +1 -1
  548. package/dist/tools/probuilder-extrude.d.ts +40 -2
  549. package/dist/tools/probuilder-extrude.js +35 -44
  550. package/dist/tools/probuilder-extrude.js.map +1 -1
  551. package/dist/tools/probuilder-get-mesh-info.d.ts +40 -2
  552. package/dist/tools/probuilder-get-mesh-info.js +12 -17
  553. package/dist/tools/probuilder-get-mesh-info.js.map +1 -1
  554. package/dist/tools/probuilder-set-face-material.d.ts +40 -2
  555. package/dist/tools/probuilder-set-face-material.js +30 -39
  556. package/dist/tools/probuilder-set-face-material.js.map +1 -1
  557. package/dist/tools/profiler-capture-frame.d.ts +40 -2
  558. package/dist/tools/profiler-capture-frame.js +59 -63
  559. package/dist/tools/profiler-capture-frame.js.map +1 -1
  560. package/dist/tools/profiler-capture.d.ts +40 -2
  561. package/dist/tools/profiler-capture.js +76 -81
  562. package/dist/tools/profiler-capture.js.map +1 -1
  563. package/dist/tools/profiler-clear-data.d.ts +40 -2
  564. package/dist/tools/profiler-clear-data.js +9 -14
  565. package/dist/tools/profiler-clear-data.js.map +1 -1
  566. package/dist/tools/profiler-enable-module.d.ts +40 -2
  567. package/dist/tools/profiler-enable-module.js +18 -23
  568. package/dist/tools/profiler-enable-module.js.map +1 -1
  569. package/dist/tools/profiler-get-config.d.ts +40 -2
  570. package/dist/tools/profiler-get-config.js +10 -15
  571. package/dist/tools/profiler-get-config.js.map +1 -1
  572. package/dist/tools/profiler-get-script-stats.d.ts +40 -2
  573. package/dist/tools/profiler-get-script-stats.js +9 -14
  574. package/dist/tools/profiler-get-script-stats.js.map +1 -1
  575. package/dist/tools/profiler-get-status.d.ts +40 -2
  576. package/dist/tools/profiler-get-status.js +10 -15
  577. package/dist/tools/profiler-get-status.js.map +1 -1
  578. package/dist/tools/profiler-list-modules.d.ts +40 -2
  579. package/dist/tools/profiler-list-modules.js +9 -14
  580. package/dist/tools/profiler-list-modules.js.map +1 -1
  581. package/dist/tools/profiler-load-data.d.ts +40 -2
  582. package/dist/tools/profiler-load-data.js +23 -28
  583. package/dist/tools/profiler-load-data.js.map +1 -1
  584. package/dist/tools/profiler-memory.d.ts +40 -2
  585. package/dist/tools/profiler-memory.js +13 -18
  586. package/dist/tools/profiler-memory.js.map +1 -1
  587. package/dist/tools/profiler-rendering.d.ts +40 -2
  588. package/dist/tools/profiler-rendering.js +8 -13
  589. package/dist/tools/profiler-rendering.js.map +1 -1
  590. package/dist/tools/profiler-save-data.d.ts +40 -2
  591. package/dist/tools/profiler-save-data.js +16 -28
  592. package/dist/tools/profiler-save-data.js.map +1 -1
  593. package/dist/tools/profiler-set-config.d.ts +40 -2
  594. package/dist/tools/profiler-set-config.js +58 -63
  595. package/dist/tools/profiler-set-config.js.map +1 -1
  596. package/dist/tools/profiler-start.d.ts +40 -2
  597. package/dist/tools/profiler-start.js +16 -21
  598. package/dist/tools/profiler-start.js.map +1 -1
  599. package/dist/tools/profiler-stop.d.ts +40 -2
  600. package/dist/tools/profiler-stop.js +9 -14
  601. package/dist/tools/profiler-stop.js.map +1 -1
  602. package/dist/tools/pull-events.d.ts +40 -2
  603. package/dist/tools/pull-events.js +23 -28
  604. package/dist/tools/pull-events.js.map +1 -1
  605. package/dist/tools/read-asset.d.ts +40 -2
  606. package/dist/tools/read-asset.js +66 -71
  607. package/dist/tools/read-asset.js.map +1 -1
  608. package/dist/tools/read-compile-errors.d.ts +40 -2
  609. package/dist/tools/read-compile-errors.js +40 -45
  610. package/dist/tools/read-compile-errors.js.map +1 -1
  611. package/dist/tools/read-console.d.ts +40 -2
  612. package/dist/tools/read-console.js +49 -54
  613. package/dist/tools/read-console.js.map +1 -1
  614. package/dist/tools/reflection-probe-bake.d.ts +40 -2
  615. package/dist/tools/reflection-probe-bake.js +30 -40
  616. package/dist/tools/reflection-probe-bake.js.map +1 -1
  617. package/dist/tools/reflection-probe-get.d.ts +40 -2
  618. package/dist/tools/reflection-probe-get.js +10 -15
  619. package/dist/tools/reflection-probe-get.js.map +1 -1
  620. package/dist/tools/regression-check.d.ts +40 -2
  621. package/dist/tools/regression-check.js +28 -33
  622. package/dist/tools/regression-check.js.map +1 -1
  623. package/dist/tools/reimport-package.d.ts +40 -2
  624. package/dist/tools/reimport-package.js +22 -38
  625. package/dist/tools/reimport-package.js.map +1 -1
  626. package/dist/tools/reserialize.d.ts +40 -2
  627. package/dist/tools/reserialize.js +19 -28
  628. package/dist/tools/reserialize.js.map +1 -1
  629. package/dist/tools/resource-pressure.d.ts +40 -0
  630. package/dist/tools/resource-pressure.js +57 -0
  631. package/dist/tools/resource-pressure.js.map +1 -0
  632. package/dist/tools/restart-editor.d.ts +40 -0
  633. package/dist/tools/restart-editor.js +74 -0
  634. package/dist/tools/restart-editor.js.map +1 -0
  635. package/dist/tools/run-tests.d.ts +40 -2
  636. package/dist/tools/run-tests.js +41 -46
  637. package/dist/tools/run-tests.js.map +1 -1
  638. package/dist/tools/scan-all.d.ts +40 -2
  639. package/dist/tools/scan-all.js +17 -22
  640. package/dist/tools/scan-all.js.map +1 -1
  641. package/dist/tools/scan-paths.d.ts +40 -2
  642. package/dist/tools/scan-paths.js +51 -56
  643. package/dist/tools/scan-paths.js.map +1 -1
  644. package/dist/tools/scene-create.d.ts +40 -2
  645. package/dist/tools/scene-create.js +41 -42
  646. package/dist/tools/scene-create.js.map +1 -1
  647. package/dist/tools/scene-focus.d.ts +40 -2
  648. package/dist/tools/scene-focus.js +38 -50
  649. package/dist/tools/scene-focus.js.map +1 -1
  650. package/dist/tools/scene-get-data.d.ts +40 -2
  651. package/dist/tools/scene-get-data.js +66 -71
  652. package/dist/tools/scene-get-data.js.map +1 -1
  653. package/dist/tools/scene-get-dirty-summary.d.ts +40 -2
  654. package/dist/tools/scene-get-dirty-summary.js +9 -14
  655. package/dist/tools/scene-get-dirty-summary.js.map +1 -1
  656. package/dist/tools/scene-list-opened.d.ts +40 -2
  657. package/dist/tools/scene-list-opened.js +8 -13
  658. package/dist/tools/scene-list-opened.js.map +1 -1
  659. package/dist/tools/scene-open.d.ts +40 -2
  660. package/dist/tools/scene-open.js +24 -43
  661. package/dist/tools/scene-open.js.map +1 -1
  662. package/dist/tools/scene-save.d.ts +40 -2
  663. package/dist/tools/scene-save.js +25 -38
  664. package/dist/tools/scene-save.js.map +1 -1
  665. package/dist/tools/scene-set-active.d.ts +40 -2
  666. package/dist/tools/scene-set-active.js +27 -39
  667. package/dist/tools/scene-set-active.js.map +1 -1
  668. package/dist/tools/scene-unload.d.ts +40 -2
  669. package/dist/tools/scene-unload.js +25 -38
  670. package/dist/tools/scene-unload.js.map +1 -1
  671. package/dist/tools/sceneview-get-camera.d.ts +40 -2
  672. package/dist/tools/sceneview-get-camera.js +7 -12
  673. package/dist/tools/sceneview-get-camera.js.map +1 -1
  674. package/dist/tools/sceneview-set-camera.d.ts +40 -2
  675. package/dist/tools/sceneview-set-camera.js +38 -50
  676. package/dist/tools/sceneview-set-camera.js.map +1 -1
  677. package/dist/tools/schema-fragments.d.ts +86 -0
  678. package/dist/tools/schema-fragments.js +119 -0
  679. package/dist/tools/schema-fragments.js.map +1 -0
  680. package/dist/tools/screenshot-camera.d.ts +40 -2
  681. package/dist/tools/screenshot-camera.js +47 -52
  682. package/dist/tools/screenshot-camera.js.map +1 -1
  683. package/dist/tools/screenshot-window.d.ts +40 -2
  684. package/dist/tools/screenshot-window.js +40 -45
  685. package/dist/tools/screenshot-window.js.map +1 -1
  686. package/dist/tools/screenshot.d.ts +40 -2
  687. package/dist/tools/screenshot.js +39 -44
  688. package/dist/tools/screenshot.js.map +1 -1
  689. package/dist/tools/script-delete.d.ts +40 -2
  690. package/dist/tools/script-delete.js +18 -30
  691. package/dist/tools/script-delete.js.map +1 -1
  692. package/dist/tools/script-read.d.ts +40 -2
  693. package/dist/tools/script-read.js +34 -39
  694. package/dist/tools/script-read.js.map +1 -1
  695. package/dist/tools/script-write.d.ts +40 -2
  696. package/dist/tools/script-write.js +37 -49
  697. package/dist/tools/script-write.js.map +1 -1
  698. package/dist/tools/scriptableobject-create.d.ts +40 -2
  699. package/dist/tools/scriptableobject-create.js +56 -68
  700. package/dist/tools/scriptableobject-create.js.map +1 -1
  701. package/dist/tools/search-assets.d.ts +40 -2
  702. package/dist/tools/search-assets.js +55 -58
  703. package/dist/tools/search-assets.js.map +1 -1
  704. package/dist/tools/selection-get.d.ts +40 -2
  705. package/dist/tools/selection-get.js +16 -21
  706. package/dist/tools/selection-get.js.map +1 -1
  707. package/dist/tools/selection-set.d.ts +40 -2
  708. package/dist/tools/selection-set.js +57 -62
  709. package/dist/tools/selection-set.js.map +1 -1
  710. package/dist/tools/settings-get-lighting.d.ts +40 -2
  711. package/dist/tools/settings-get-lighting.js +9 -14
  712. package/dist/tools/settings-get-lighting.js.map +1 -1
  713. package/dist/tools/settings-get-physics.d.ts +40 -2
  714. package/dist/tools/settings-get-physics.js +7 -12
  715. package/dist/tools/settings-get-physics.js.map +1 -1
  716. package/dist/tools/settings-get-player.d.ts +40 -2
  717. package/dist/tools/settings-get-player.js +7 -12
  718. package/dist/tools/settings-get-player.js.map +1 -1
  719. package/dist/tools/settings-get-quality.d.ts +40 -2
  720. package/dist/tools/settings-get-quality.js +7 -12
  721. package/dist/tools/settings-get-quality.js.map +1 -1
  722. package/dist/tools/settings-get-render-pipeline.d.ts +40 -2
  723. package/dist/tools/settings-get-render-pipeline.js +10 -15
  724. package/dist/tools/settings-get-render-pipeline.js.map +1 -1
  725. package/dist/tools/settings-get-time.d.ts +40 -2
  726. package/dist/tools/settings-get-time.js +9 -14
  727. package/dist/tools/settings-get-time.js.map +1 -1
  728. package/dist/tools/settings-set-lighting.d.ts +40 -2
  729. package/dist/tools/settings-set-lighting.js +33 -46
  730. package/dist/tools/settings-set-lighting.js.map +1 -1
  731. package/dist/tools/settings-set-physics.d.ts +40 -2
  732. package/dist/tools/settings-set-physics.js +30 -43
  733. package/dist/tools/settings-set-physics.js.map +1 -1
  734. package/dist/tools/settings-set-player.d.ts +40 -2
  735. package/dist/tools/settings-set-player.js +35 -53
  736. package/dist/tools/settings-set-player.js.map +1 -1
  737. package/dist/tools/settings-set-quality-level.d.ts +40 -2
  738. package/dist/tools/settings-set-quality-level.js +25 -38
  739. package/dist/tools/settings-set-quality-level.js.map +1 -1
  740. package/dist/tools/settings-set-quality.d.ts +40 -2
  741. package/dist/tools/settings-set-quality.js +29 -42
  742. package/dist/tools/settings-set-quality.js.map +1 -1
  743. package/dist/tools/settings-set-time.d.ts +40 -2
  744. package/dist/tools/settings-set-time.js +31 -44
  745. package/dist/tools/settings-set-time.js.map +1 -1
  746. package/dist/tools/shader-get-data.d.ts +40 -2
  747. package/dist/tools/shader-get-data.js +20 -25
  748. package/dist/tools/shader-get-data.js.map +1 -1
  749. package/dist/tools/shader-graph-create.d.ts +40 -2
  750. package/dist/tools/shader-graph-create.js +23 -32
  751. package/dist/tools/shader-graph-create.js.map +1 -1
  752. package/dist/tools/shader-graph-node-add.d.ts +40 -2
  753. package/dist/tools/shader-graph-node-add.js +34 -43
  754. package/dist/tools/shader-graph-node-add.js.map +1 -1
  755. package/dist/tools/shader-graph-node-connect.d.ts +40 -2
  756. package/dist/tools/shader-graph-node-connect.js +44 -53
  757. package/dist/tools/shader-graph-node-connect.js.map +1 -1
  758. package/dist/tools/shader-graph-open.d.ts +40 -2
  759. package/dist/tools/shader-graph-open.js +15 -20
  760. package/dist/tools/shader-graph-open.js.map +1 -1
  761. package/dist/tools/shader-list-all.d.ts +40 -2
  762. package/dist/tools/shader-list-all.js +12 -17
  763. package/dist/tools/shader-list-all.js.map +1 -1
  764. package/dist/tools/skybox-get.d.ts +40 -2
  765. package/dist/tools/skybox-get.js +5 -10
  766. package/dist/tools/skybox-get.js.map +1 -1
  767. package/dist/tools/skybox-set.d.ts +40 -2
  768. package/dist/tools/skybox-set.js +16 -27
  769. package/dist/tools/skybox-set.js.map +1 -1
  770. package/dist/tools/spatial-query.d.ts +40 -2
  771. package/dist/tools/spatial-query.js +110 -115
  772. package/dist/tools/spatial-query.js.map +1 -1
  773. package/dist/tools/splines-add-knot.d.ts +40 -2
  774. package/dist/tools/splines-add-knot.js +29 -38
  775. package/dist/tools/splines-add-knot.js.map +1 -1
  776. package/dist/tools/splines-container-create.d.ts +40 -2
  777. package/dist/tools/splines-container-create.js +23 -32
  778. package/dist/tools/splines-container-create.js.map +1 -1
  779. package/dist/tools/splines-evaluate.d.ts +40 -2
  780. package/dist/tools/splines-evaluate.js +21 -26
  781. package/dist/tools/splines-evaluate.js.map +1 -1
  782. package/dist/tools/splines-get-knots.d.ts +40 -2
  783. package/dist/tools/splines-get-knots.js +15 -20
  784. package/dist/tools/splines-get-knots.js.map +1 -1
  785. package/dist/tools/splines-modify.d.ts +40 -2
  786. package/dist/tools/splines-modify.js +20 -29
  787. package/dist/tools/splines-modify.js.map +1 -1
  788. package/dist/tools/splines-set-knot.d.ts +40 -2
  789. package/dist/tools/splines-set-knot.js +26 -35
  790. package/dist/tools/splines-set-knot.js.map +1 -1
  791. package/dist/tools/splines-set-tangent-mode.d.ts +40 -2
  792. package/dist/tools/splines-set-tangent-mode.js +28 -37
  793. package/dist/tools/splines-set-tangent-mode.js.map +1 -1
  794. package/dist/tools/spriteatlas-add-packable.d.ts +40 -2
  795. package/dist/tools/spriteatlas-add-packable.js +22 -34
  796. package/dist/tools/spriteatlas-add-packable.js.map +1 -1
  797. package/dist/tools/spriteatlas-create.d.ts +40 -2
  798. package/dist/tools/spriteatlas-create.js +22 -34
  799. package/dist/tools/spriteatlas-create.js.map +1 -1
  800. package/dist/tools/spriteatlas-delete.d.ts +40 -2
  801. package/dist/tools/spriteatlas-delete.js +14 -26
  802. package/dist/tools/spriteatlas-delete.js.map +1 -1
  803. package/dist/tools/spriteatlas-get.d.ts +40 -2
  804. package/dist/tools/spriteatlas-get.js +13 -18
  805. package/dist/tools/spriteatlas-get.js.map +1 -1
  806. package/dist/tools/spriteatlas-list.d.ts +40 -2
  807. package/dist/tools/spriteatlas-list.js +10 -15
  808. package/dist/tools/spriteatlas-list.js.map +1 -1
  809. package/dist/tools/spriteatlas-modify.d.ts +40 -2
  810. package/dist/tools/spriteatlas-modify.js +36 -48
  811. package/dist/tools/spriteatlas-modify.js.map +1 -1
  812. package/dist/tools/spriteatlas-remove-packable.d.ts +40 -2
  813. package/dist/tools/spriteatlas-remove-packable.js +21 -33
  814. package/dist/tools/spriteatlas-remove-packable.js.map +1 -1
  815. package/dist/tools/terrain-create.d.ts +40 -2
  816. package/dist/tools/terrain-create.js +48 -62
  817. package/dist/tools/terrain-create.js.map +1 -1
  818. package/dist/tools/terrain-paint-layer.d.ts +40 -2
  819. package/dist/tools/terrain-paint-layer.js +47 -61
  820. package/dist/tools/terrain-paint-layer.js.map +1 -1
  821. package/dist/tools/terrain-place-trees.d.ts +40 -2
  822. package/dist/tools/terrain-place-trees.js +56 -68
  823. package/dist/tools/terrain-place-trees.js.map +1 -1
  824. package/dist/tools/terrain-set-heights.d.ts +40 -2
  825. package/dist/tools/terrain-set-heights.js +31 -43
  826. package/dist/tools/terrain-set-heights.js.map +1 -1
  827. package/dist/tools/terrain-set-neighbors.d.ts +40 -2
  828. package/dist/tools/terrain-set-neighbors.js +22 -34
  829. package/dist/tools/terrain-set-neighbors.js.map +1 -1
  830. package/dist/tools/texture-get-importer.d.ts +40 -2
  831. package/dist/tools/texture-get-importer.js +15 -20
  832. package/dist/tools/texture-get-importer.js.map +1 -1
  833. package/dist/tools/texture-get.d.ts +40 -2
  834. package/dist/tools/texture-get.js +12 -17
  835. package/dist/tools/texture-get.js.map +1 -1
  836. package/dist/tools/texture-reimport.d.ts +40 -2
  837. package/dist/tools/texture-reimport.js +15 -27
  838. package/dist/tools/texture-reimport.js.map +1 -1
  839. package/dist/tools/texture-set-import.d.ts +40 -2
  840. package/dist/tools/texture-set-import.js +32 -44
  841. package/dist/tools/texture-set-import.js.map +1 -1
  842. package/dist/tools/tilemap-box-fill.d.ts +40 -2
  843. package/dist/tools/tilemap-box-fill.js +20 -29
  844. package/dist/tools/tilemap-box-fill.js.map +1 -1
  845. package/dist/tools/tilemap-create-rule-tile.d.ts +40 -2
  846. package/dist/tools/tilemap-create-rule-tile.js +22 -31
  847. package/dist/tools/tilemap-create-rule-tile.js.map +1 -1
  848. package/dist/tools/tilemap-create-tile-asset.d.ts +40 -2
  849. package/dist/tools/tilemap-create-tile-asset.js +21 -30
  850. package/dist/tools/tilemap-create-tile-asset.js.map +1 -1
  851. package/dist/tools/tilemap-create.d.ts +40 -2
  852. package/dist/tools/tilemap-create.js +17 -26
  853. package/dist/tools/tilemap-create.js.map +1 -1
  854. package/dist/tools/tilemap-set-tile.d.ts +40 -2
  855. package/dist/tools/tilemap-set-tile.js +20 -29
  856. package/dist/tools/tilemap-set-tile.js.map +1 -1
  857. package/dist/tools/timeline-clip-add.d.ts +40 -2
  858. package/dist/tools/timeline-clip-add.js +30 -39
  859. package/dist/tools/timeline-clip-add.js.map +1 -1
  860. package/dist/tools/timeline-create.d.ts +40 -2
  861. package/dist/tools/timeline-create.js +17 -26
  862. package/dist/tools/timeline-create.js.map +1 -1
  863. package/dist/tools/timeline-director-bind.d.ts +40 -2
  864. package/dist/tools/timeline-director-bind.js +20 -29
  865. package/dist/tools/timeline-director-bind.js.map +1 -1
  866. package/dist/tools/timeline-modify.d.ts +40 -2
  867. package/dist/tools/timeline-modify.js +30 -39
  868. package/dist/tools/timeline-modify.js.map +1 -1
  869. package/dist/tools/timeline-track-add.d.ts +40 -2
  870. package/dist/tools/timeline-track-add.js +24 -33
  871. package/dist/tools/timeline-track-add.js.map +1 -1
  872. package/dist/tools/type-schema.d.ts +40 -2
  873. package/dist/tools/type-schema.js +47 -52
  874. package/dist/tools/type-schema.js.map +1 -1
  875. package/dist/tools/ui-canvas-add.d.ts +40 -2
  876. package/dist/tools/ui-canvas-add.js +29 -41
  877. package/dist/tools/ui-canvas-add.js.map +1 -1
  878. package/dist/tools/ui-element-add.d.ts +40 -2
  879. package/dist/tools/ui-element-add.js +47 -56
  880. package/dist/tools/ui-element-add.js.map +1 -1
  881. package/dist/tools/ui-element-modify.d.ts +40 -2
  882. package/dist/tools/ui-element-modify.js +41 -50
  883. package/dist/tools/ui-element-modify.js.map +1 -1
  884. package/dist/tools/ui-layout-group-add.d.ts +40 -2
  885. package/dist/tools/ui-layout-group-add.js +64 -73
  886. package/dist/tools/ui-layout-group-add.js.map +1 -1
  887. package/dist/tools/validate-edit.d.ts +40 -2
  888. package/dist/tools/validate-edit.js +56 -61
  889. package/dist/tools/validate-edit.js.map +1 -1
  890. package/dist/tools/vfx-block-edit.d.ts +40 -2
  891. package/dist/tools/vfx-block-edit.js +32 -41
  892. package/dist/tools/vfx-block-edit.js.map +1 -1
  893. package/dist/tools/vfx-list.d.ts +40 -2
  894. package/dist/tools/vfx-list.js +17 -22
  895. package/dist/tools/vfx-list.js.map +1 -1
  896. package/dist/tools/vfx-open.d.ts +40 -2
  897. package/dist/tools/vfx-open.js +14 -19
  898. package/dist/tools/vfx-open.js.map +1 -1
  899. package/package.json +1 -1
@@ -18,7 +18,7 @@ import { cleanScalar, findGUIDs, readGUIDField } from "./primitives.js";
18
18
  import { parseAsset } from "./parse.js";
19
19
  import { displayFieldName } from "./names.js";
20
20
  import { buildAssetModel, buildJsonAssetModel, runYamlIntegrityChecks, } from "./model.js";
21
- import { buildGUIDIndex, buildScriptIndex, buildScriptIndexForQuery, collectFiles, resolveGUIDPaths, safeReadMetaGUID, scriptGUIDs, walkFiles, walkMeta, } from "./index-builders.js";
21
+ import { buildGUIDIndex, buildScriptIndexForQuery, buildGuidAndScriptIndex, collectFiles, collectMetaTriples, parallelMap, resolveGUIDPaths, safeReadMetaGUID, scriptGUIDs, walkFiles, } from "./index-builders.js";
22
22
  import { toAssetPath, relativeDir } from "./paths.js";
23
23
  import { OVERRIDE_LABEL_HELPERS } from "./references.js";
24
24
  import { setLabelHelpers } from "./overrides.js";
@@ -75,12 +75,14 @@ export async function readAssetOffline(assetPath, opts) {
75
75
  parsed.path = assetPath;
76
76
  parsed.kind = kind;
77
77
  parsed.guid = guid;
78
+ // M31-optimizations Plan 2 / H5 — build both the script (.cs subset) and
79
+ // field-GUID indices in a SINGLE meta walk by unioning the wanted sets.
80
+ // Previously this was buildScriptIndex (which itself walks the meta tree
81
+ // via buildGUIDIndex) followed by another buildGUIDIndex walk — every cold
82
+ // read_asset paid two back-to-back walks of the same tree.
78
83
  const wantedScripts = scriptGUIDs(parsed);
79
- const scriptIndex = await buildScriptIndex(opts.projectRoot, wantedScripts);
80
84
  const wantedGUIDs = collectFieldGUIDs(parsed);
81
- const guidIndex = await buildGUIDIndex(opts.projectRoot, wantedGUIDs);
82
- for (const [g, p] of scriptIndex)
83
- guidIndex.set(g, p);
85
+ const { guidIndex, scriptIndex } = await buildGuidAndScriptIndex(opts.projectRoot, wantedGUIDs, wantedScripts);
84
86
  const integrity = runYamlIntegrityChecks(parsed, guidIndex);
85
87
  return {
86
88
  model: { ...buildAssetModel(parsed, scriptIndex, guidIndex, opts.fieldLimit), ...(integrity ? { integrity } : {}) },
@@ -109,8 +111,23 @@ export async function searchAssetsOffline(opts) {
109
111
  const guidQuery = (opts.guid ?? "").trim().toLowerCase();
110
112
  const typeFilter = opts.type ? parseKindSet(opts.type) : null;
111
113
  const folder = opts.folder ?? "Assets";
112
- const maxResults = opts.maxResults ?? 50;
114
+ // M1 — `0` (and any negative) is the documented "unlimited (for paging)"
115
+ // sentinel forwarded by compressible-router.ts when the caller supplies a
116
+ // page_size; `??` does not treat 0 as absent, so the previous
117
+ // `opts.maxResults ?? 50` made `0` a hard cap and the loop broke on the
118
+ // first file (`0 >= 0`). Treat `<= 0` as unlimited, mirroring
119
+ // dependenciesOffline (`maxResults > 0 && totalCount > maxResults`) and
120
+ // renderSearchSummary (`matchLimit > 0 ? ... : all.length`).
121
+ const maxResults = (typeof opts.maxResults === "number" && opts.maxResults > 0)
122
+ ? opts.maxResults
123
+ : Number.POSITIVE_INFINITY;
113
124
  const searchDir = join(opts.projectRoot, folder);
125
+ // M31-optimizations Plan 2 / L2 — when a component query is present, build
126
+ // the script-name → guid → path index from the same single walk that would
127
+ // already populate the guid + script indices. Previously this was a
128
+ // separate buildScriptIndexForQuery walk. The guid-query path still uses
129
+ // resolveGUIDPaths (its early-exit-on-first-match optimization is worth
130
+ // more than collapsing its walk into this one).
114
131
  const scriptIndex = componentQuery
115
132
  ? await buildScriptIndexForQuery(opts.projectRoot, componentQuery)
116
133
  : new Map();
@@ -188,8 +205,16 @@ function checkMatch(parsed, scriptIndex, guidIndex, assetPath, kind, guid, crite
188
205
  reasons.push("guid");
189
206
  }
190
207
  const hierarchy = buildHierarchy(parsed);
208
+ // M31-optimizations Plan 3 / L3 — flatten the hierarchy exactly once per
209
+ // asset and reuse the flattened list for both the name-query and component-
210
+ // query scans. Previously checkMatch called flattenHierarchy(hierarchy)
211
+ // twice (once per query branch), each producing a fresh flattened array.
212
+ // componentsFor now also consults the per-asset goID→components cache built
213
+ // during buildHierarchy above, so each node's component set is an O(1)
214
+ // Map lookup instead of a linear scan over all objects.
215
+ const flatNodes = flattenHierarchy(hierarchy);
191
216
  if (nameQuery) {
192
- for (const node of flattenHierarchy(hierarchy)) {
217
+ for (const node of flatNodes) {
193
218
  if (node.gameObject.name.toLowerCase().includes(nameQuery)) {
194
219
  const comps = componentsFor(parsed, node.gameObject.id, scriptIndex);
195
220
  objects.push({ path: node.path, components: comps.map((c) => c.name) });
@@ -200,7 +225,7 @@ function checkMatch(parsed, scriptIndex, guidIndex, assetPath, kind, guid, crite
200
225
  }
201
226
  if (componentQuery) {
202
227
  let componentMatch = false;
203
- for (const node of flattenHierarchy(hierarchy)) {
228
+ for (const node of flatNodes) {
204
229
  const comps = componentsFor(parsed, node.gameObject.id, scriptIndex);
205
230
  const matching = comps.filter((c) => c.name.toLowerCase().includes(componentQuery) ||
206
231
  (c.scriptPath && c.scriptPath.toLowerCase().includes(componentQuery)));
@@ -325,7 +350,15 @@ export async function listAssetsOffline(opts) {
325
350
  const REFERENCEABLE_EXTENSIONS = OFFLINE_PARSEABLE_EXTENSIONS;
326
351
  export async function findReferencesOffline(opts) {
327
352
  const detail = (opts.detail ?? "normal");
328
- const maxResults = opts.maxResults ?? 100;
353
+ // M2 — `0` (and any negative) is the documented "unlimited (for paging)"
354
+ // sentinel forwarded by tool-router.ts when the caller supplies a
355
+ // page_size; `??` does not treat 0 as absent, so the previous
356
+ // `opts.maxResults ?? 100` made `0` a hard cap and `displayHits.slice(0,0)`
357
+ // returned an empty list (page_size:1 → referencedBy:[]). Treat `<= 0` as
358
+ // unlimited, mirroring dependenciesOffline and searchAssetsOffline.
359
+ const maxResults = (typeof opts.maxResults === "number" && opts.maxResults > 0)
360
+ ? opts.maxResults
361
+ : Number.POSITIVE_INFINITY;
329
362
  const maxPerFile = opts.maxPerFile ?? 5;
330
363
  const patternThreshold = opts.patternThreshold ?? 0;
331
364
  // Resolve target GUID + path.
@@ -369,7 +402,8 @@ export async function findReferencesOffline(opts) {
369
402
  catch {
370
403
  continue;
371
404
  }
372
- // Fast filter: skip files that don't mention the GUID at all.
405
+ // Fast filter: skip files that don't mention the GUID at all. This stays
406
+ // on the joined content (the cheap fast-reject before any per-line work).
373
407
  if (!content.includes(targetGuid))
374
408
  continue;
375
409
  const assetPath = toAssetPath(opts.projectRoot, absPath);
@@ -386,7 +420,14 @@ export async function findReferencesOffline(opts) {
386
420
  folder,
387
421
  };
388
422
  if (detail === "verbose") {
389
- entry.locations = extractReferenceLocations(content, targetGuid, maxPerFile);
423
+ // M31-optimizations Plan 2 / L4 — split content into lines ONCE and
424
+ // pass the line array downstream. Previously extractReferenceLocations
425
+ // re-split the same content it was given; now the single split is
426
+ // visible at the call site and the per-line scan reuses it. The
427
+ // substring pre-filter above already ran on the joined content (the
428
+ // fast-reject), so this is the ONLY split for the verbose path.
429
+ const lines = content.split("\n");
430
+ entry.locations = extractReferenceLocationsFromLines(lines, targetGuid, maxPerFile);
390
431
  }
391
432
  hits.push(entry);
392
433
  }
@@ -444,9 +485,15 @@ export async function findReferencesOffline(opts) {
444
485
  truncated,
445
486
  };
446
487
  }
447
- function extractReferenceLocations(content, targetGuid, maxPerFile) {
488
+ /**
489
+ * M31-optimizations Plan 2 / L4 — extract field-location labels for a target
490
+ * GUID from a pre-split line array. The caller ({@link findReferencesOffline})
491
+ * splits the content once and passes the lines here so the verbose path does
492
+ * not re-split the same content downstream. The per-line scan iterates the
493
+ * array directly.
494
+ */
495
+ function extractReferenceLocationsFromLines(lines, targetGuid, maxPerFile) {
448
496
  const locations = [];
449
- const lines = content.split("\n");
450
497
  for (let i = 0; i < lines.length; i++) {
451
498
  if (!lines[i].includes(targetGuid))
452
499
  continue;
@@ -528,22 +575,57 @@ export async function dependenciesOffline(opts) {
528
575
  forwardSkipped = err instanceof Error ? err.message : String(err);
529
576
  }
530
577
  }
531
- // ---- Reverse edges ---- (reuse the findReferencesOffline machinery).
532
- const refResult = await findReferencesOffline({
533
- assetPath: targetPath || undefined,
534
- guid: targetGuid,
535
- detail: "normal",
536
- projectRoot: opts.projectRoot,
537
- });
538
- const reverseEdges = refResult.referencedBy.map((e) => ({
539
- assetPath: e.assetPath,
540
- guid: e.guid ?? "",
541
- kind: e.kind,
542
- }));
578
+ // ---- Reverse edges ----
579
+ // M31-optimizations Plan 2 / H4 + M5 — build the project-wide reverse-edge
580
+ // graph ONCE per dependenciesOffline call when impact is requested.
581
+ // Previously the single reverse-edge lookup called findReferencesOffline
582
+ // (one full project walk), and computeTransitiveImpact called
583
+ // findReferencesOffline per BFS frontier node — re-walking the whole
584
+ // project K times for a closure of size K (O(closure × project size)). The
585
+ // graph is a Map<guid, ReverseEdge[]> built in a single pass over
586
+ // parseable assets; both the direct reverse-edge lookup and the impact BFS
587
+ // consult it via pure Map.get, so no per-node project walk remains. The
588
+ // graph is a local variable (per-call only; root AGENTS.md forbids disk
589
+ // caches).
590
+ //
591
+ // When impact is NOT requested, skip the graph build — the direct reverse-
592
+ // edge lookup via findReferencesOffline is cheaper than building the whole
593
+ // project graph (it early-exits the candidate scan as soon as it has read
594
+ // each file once, and produces the verbose-fold fields dependenciesOffline
595
+ // does not need but finds cheaper to inherit than to re-derive).
596
+ const reverseEdgeGraph = includeImpact
597
+ ? await buildReverseEdgeGraph(opts.projectRoot)
598
+ : null;
599
+ const reverseEdges = reverseEdgeGraph
600
+ ? findReferencesFromGraph(reverseEdgeGraph.graph, targetGuid, targetPath)
601
+ : (await findReferencesOffline({
602
+ assetPath: targetPath || undefined,
603
+ guid: targetGuid,
604
+ detail: "normal",
605
+ // M5 — fetch the FULL reverse-edge set and let the outer cap below be
606
+ // the single source of truth for truncation. Previously this call
607
+ // omitted maxResults, so findReferencesOffline applied its inner
608
+ // default of 100, pre-truncated `referencedBy`, and discarded its own
609
+ // `truncated` count. `reverseEdges` was then silently capped at 100,
610
+ // `totalCount` was computed from the already-truncated list, and the
611
+ // outer `totalCount > maxResults` check could never fire — so an agent
612
+ // using `dependencies` as a pre-delete impact check got a list that
613
+ // claimed to be complete (`truncated: 0`) while omitting the tail.
614
+ // `0` is the documented "unlimited (for paging)" sentinel both layers
615
+ // already agree on (M2 normalized findReferencesOffline to treat `<= 0`
616
+ // as unlimited). The outer cap at lines below then slices + reports
617
+ // `truncated` correctly against the true count.
618
+ maxResults: 0,
619
+ projectRoot: opts.projectRoot,
620
+ })).referencedBy.map((e) => ({
621
+ assetPath: e.assetPath,
622
+ guid: e.guid ?? "",
623
+ kind: e.kind,
624
+ }));
543
625
  // ---- Transitive impact (optional) ----
544
626
  let impact;
545
- if (includeImpact) {
546
- impact = await computeTransitiveImpact(targetGuid, targetPath, opts.projectRoot, maxImpactDepth);
627
+ if (includeImpact && reverseEdgeGraph) {
628
+ impact = await computeTransitiveImpactFromGraph(targetGuid, targetPath, reverseEdgeGraph.graph, reverseEdgeGraph.pathToGuid, maxImpactDepth);
547
629
  }
548
630
  // ---- Apply detail + caps ----
549
631
  const displayForward = detail === "summary" ? [] : forwardEdges;
@@ -573,6 +655,7 @@ export async function dependenciesOffline(opts) {
573
655
  detail,
574
656
  truncated,
575
657
  ...(forwardSkipped ? { forwardSkipped } : {}),
658
+ // Inline tag is load-bearing — see the note on DependenciesOfflineResult._source.
576
659
  _source: "offline",
577
660
  };
578
661
  }
@@ -588,35 +671,55 @@ function emptyDependencies(path, guid, detail) {
588
671
  reverseCount: 0,
589
672
  detail,
590
673
  truncated: 0,
674
+ // Inline tag is load-bearing — see the note on DependenciesOfflineResult._source.
591
675
  _source: "offline",
592
676
  };
593
677
  }
594
678
  /** Collect the forward edges declared by a single asset. */
595
679
  function collectForwardEdges(parsed) {
596
- const edges = [];
680
+ // M31-optimizations Plan 3 / H6 — single pass over parsed.objects.
681
+ // Previously this ran three separate `for (const obj of parsed.objects)`
682
+ // loops (one per edge kind), each re-scanning all objects (+ all lines for
683
+ // the pptr kind) — O(3 × objects × lines). The single pass below branches
684
+ // on obj.type and on whether the line declares an m_Script / m_SourcePrefab
685
+ // / generic guid: field, accumulating into three per-kind buffers that are
686
+ // concatenated at the end. The concatenation order (prefab_source, then
687
+ // script, then pptr) preserves the exact edge ordering the previous
688
+ // three-pass implementation produced, so the forwardDependencies output
689
+ // stays byte-identical. The shared `seen` set dedupes within each kind
690
+ // (a guid can appear as both a prefab_source and a pptr edge — different
691
+ // seen keys, same as before).
692
+ const prefabEdges = [];
693
+ const scriptEdges = [];
694
+ const pptrEdges = [];
597
695
  const seen = new Set();
598
- // 1. PrefabInstance.m_SourcePrefab — the base-prefab edge of a variant.
599
696
  for (const obj of parsed.objects) {
600
- if (obj.type !== "PrefabInstance")
601
- continue;
602
- const sourceGuid = readGUIDField(obj.lines, "m_SourcePrefab");
603
- if (sourceGuid !== "" && seen.add(`prefab:${sourceGuid}`)) {
604
- edges.push({ guid: sourceGuid, assetPath: "", kind: "prefab_source", resolved: false });
697
+ // 1. PrefabInstance.m_SourcePrefab — the base-prefab edge of a variant.
698
+ // Read once via readGUIDField (the previous pass-1 scanner); the line
699
+ // scan below still picks up target: GUIDs inside m_Modifications as
700
+ // pptr edges, so variant overrides still count.
701
+ if (obj.type === "PrefabInstance") {
702
+ const sourceGuid = readGUIDField(obj.lines, "m_SourcePrefab");
703
+ if (sourceGuid !== "" && seen.add(`prefab:${sourceGuid}`)) {
704
+ prefabEdges.push({ guid: sourceGuid, assetPath: "", kind: "prefab_source", resolved: false });
705
+ }
605
706
  }
606
- }
607
- // 2. m_Script GUIDs on MonoBehaviours — the script-class edge.
608
- for (const obj of parsed.objects) {
609
- if (obj.type !== "MonoBehaviour")
610
- continue;
611
- if (obj.scriptGUID !== "" && seen.add(`script:${obj.scriptGUID}`)) {
612
- edges.push({ guid: obj.scriptGUID, assetPath: "", kind: "script", resolved: false });
707
+ // 2. m_Script GUIDs on MonoBehaviours — the script-class edge. The
708
+ // parsed object already carries scriptGUID (extracted during
709
+ // finishObject), so no line re-scan is needed for this kind.
710
+ if (obj.type === "MonoBehaviour" && obj.scriptGUID !== "") {
711
+ if (seen.add(`script:${obj.scriptGUID}`)) {
712
+ scriptEdges.push({ guid: obj.scriptGUID, assetPath: "", kind: "script", resolved: false });
713
+ }
613
714
  }
614
- }
615
- // 3. Every other guid: field — material refs, asset refs, animation clips,
616
- // etc. m_Script is handled above; m_SourcePrefab target: GUIDs inside
617
- // PrefabInstance.m_Modifications are included here so variant overrides
618
- // count as forward edges too.
619
- for (const obj of parsed.objects) {
715
+ // 3. Every other guid: field on every object — material refs, asset refs,
716
+ // animation clips, etc. m_Script lines are excluded (handled above);
717
+ // the m_SourcePrefab field's GUID is captured as a prefab_source edge
718
+ // in branch 1, but a `guid:` token appearing on the m_SourcePrefab
719
+ // line would ALSO match here — the original code had the same
720
+ // overlap, deduped via the per-kind seen key (prefab: vs pptr:), so
721
+ // the same guid legitimately produces both edges. The line.includes
722
+ // fast-reject mirrors the previous pass-3 loop.
620
723
  for (const line of obj.lines) {
621
724
  if (!line.includes("guid:"))
622
725
  continue;
@@ -625,10 +728,19 @@ function collectForwardEdges(parsed) {
625
728
  for (const g of findGUIDs(line)) {
626
729
  if (!seen.add(`pptr:${g}`))
627
730
  continue;
628
- edges.push({ guid: g, assetPath: "", kind: "pptr", resolved: false });
731
+ pptrEdges.push({ guid: g, assetPath: "", kind: "pptr", resolved: false });
629
732
  }
630
733
  }
631
734
  }
735
+ // Concatenate in the previous implementation's kind order so the
736
+ // forwardDependencies array stays byte-identical.
737
+ const edges = [];
738
+ for (const e of prefabEdges)
739
+ edges.push(e);
740
+ for (const e of scriptEdges)
741
+ edges.push(e);
742
+ for (const e of pptrEdges)
743
+ edges.push(e);
632
744
  return edges;
633
745
  }
634
746
  /** Resolve forward edges against the GUID→path index. Mutates each edge in
@@ -672,7 +784,13 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
672
784
  }
673
785
  }
674
786
  const visiting = new Set();
675
- async function dfs(current, trail) {
787
+ // M31-optimizations Plan 3 / L12 — push/pop trail mutation. The previous
788
+ // recursion built the trail immutably via `[...trail, edge.assetPath]` per
789
+ // call (O(n²) path-build via spread). The trail is now a single mutable
790
+ // array pushed before recursing and popped after; the only place an
791
+ // immutable copy is needed is when emitting a discovered cycle (slice).
792
+ const trail = [];
793
+ async function dfs(current) {
676
794
  if (trail.length > maxDepth)
677
795
  return;
678
796
  const edges = await edgesOf(current);
@@ -680,13 +798,17 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
680
798
  if (!edge.resolved || edge.assetPath === "")
681
799
  continue;
682
800
  if (edge.assetPath === startPath) {
801
+ // Snapshot the trail + the closing startPath — the only immutable
802
+ // copy (the previous code's [...trail, startPath] at emit time).
683
803
  cycles.push([...trail, startPath]);
684
804
  continue;
685
805
  }
686
806
  if (visiting.has(edge.assetPath))
687
807
  continue;
688
808
  visiting.add(edge.assetPath);
689
- await dfs(edge.assetPath, [...trail, edge.assetPath]);
809
+ trail.push(edge.assetPath);
810
+ await dfs(edge.assetPath);
811
+ trail.pop();
690
812
  visiting.delete(edge.assetPath);
691
813
  }
692
814
  }
@@ -695,23 +817,117 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
695
817
  continue;
696
818
  visiting.clear();
697
819
  visiting.add(edge.assetPath);
698
- await dfs(edge.assetPath, [startPath, edge.assetPath]);
820
+ // Seed the mutable trail with [startPath, edge.assetPath] — the same
821
+ // starting state the previous dfs(edge.assetPath, [startPath, edge.assetPath])
822
+ // used. Pop both before the next seed so the trail is empty again.
823
+ trail.length = 0;
824
+ trail.push(startPath, edge.assetPath);
825
+ await dfs(edge.assetPath);
699
826
  }
700
827
  return cycles;
701
828
  }
702
- /** Transitive impact closure via BFS over reverse edges. */
703
- async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDepth) {
829
+ /**
830
+ * M31-optimizations Plan 2 / H4 + M5 — build the project-wide reverse-edge
831
+ * graph in a SINGLE pass over parseable assets. Returns:
832
+ * - graph: Map<referenced-guid, ReverseEdge[]> — every asset that references
833
+ * each guid. Each edge carries the referencing asset's path + kind + its
834
+ * OWN guid (so the BFS can resolve a frontier node's guid without an
835
+ * extra .meta read).
836
+ * - pathToGuid: Map<asset-path, own-guid> — the inverse lookup for the BFS.
837
+ *
838
+ * Used by {@link dependenciesOffline} to serve both the direct reverse-edge
839
+ * lookup AND the transitive impact BFS via pure Map.get, eliminating the
840
+ * O(closure × project size) re-walk the previous per-node
841
+ * findReferencesOffline calls incurred.
842
+ *
843
+ * In-memory, per-call only (a local variable in dependenciesOffline). Root
844
+ * AGENTS.md forbids disk caches; this is the same category as
845
+ * detectCyclesOffline's edgeCache.
846
+ *
847
+ * Edge semantics mirror findReferencesOffline: a file references a guid when
848
+ * its content contains the guid substring. Self-references are filtered at
849
+ * lookup time (findReferencesFromGraph), not here, so the graph captures
850
+ * every edge regardless of the eventual target.
851
+ */
852
+ async function buildReverseEdgeGraph(projectRoot) {
853
+ const graph = new Map();
854
+ const pathToGuid = new Map();
855
+ const candidates = await collectFiles(join(projectRoot, "Assets"));
856
+ // Read each parseable asset once. Scan it for every guid: reference and
857
+ // append the asset's edge to each referenced guid's edge list. Also record
858
+ // the asset's own guid (from its .meta) so the impact BFS can resolve a
859
+ // frontier node's guid without re-reading .meta per hop.
860
+ await parallelMap(candidates, async (absPath) => {
861
+ const ext = extname(absPath).toLowerCase();
862
+ if (!OFFLINE_PARSEABLE_EXTENSIONS.has(ext))
863
+ return;
864
+ let content;
865
+ try {
866
+ content = await readFile(absPath, "utf-8");
867
+ }
868
+ catch {
869
+ return;
870
+ }
871
+ if (!content.includes("guid:"))
872
+ return;
873
+ const assetPath = toAssetPath(projectRoot, absPath);
874
+ const kind = kindForPath(absPath);
875
+ // Resolve the asset's own guid once (cheap .meta read, OS-cached).
876
+ const ownGuid = (await safeReadMetaGUID(absPath + ".meta")).toLowerCase();
877
+ const edge = { assetPath, guid: ownGuid, kind };
878
+ if (ownGuid !== "")
879
+ pathToGuid.set(assetPath, ownGuid);
880
+ // findGUIDs returns every guid: substring in the content (lowercased).
881
+ // Dedup within this file via a Set so a guid referenced N times in one
882
+ // asset still produces one edge entry (matches findReferencesOffline,
883
+ // which pushes at most one entry per referencing file).
884
+ const referenced = new Set(findGUIDs(content));
885
+ for (const guid of referenced) {
886
+ let list = graph.get(guid);
887
+ if (!list) {
888
+ list = [];
889
+ graph.set(guid, list);
890
+ }
891
+ list.push(edge);
892
+ }
893
+ });
894
+ return { graph, pathToGuid };
895
+ }
896
+ /**
897
+ * M31-optimizations Plan 2 / H4 — consult the precomputed reverse-edge graph
898
+ * for a single target guid, mirroring findReferencesOffline's reverse-edge
899
+ * semantics (skip self-references; one entry per referencing asset). Pure
900
+ * Map.get — no I/O. The graph is keyed by lowercased guid; the target guid
901
+ * is already lowercased by dependenciesOffline's resolution path.
902
+ */
903
+ function findReferencesFromGraph(graph, targetGuid, targetPath) {
904
+ const list = graph.get(targetGuid);
905
+ if (!list)
906
+ return [];
907
+ const out = [];
908
+ for (const edge of list) {
909
+ if (edge.assetPath === targetPath)
910
+ continue; // self-reference
911
+ out.push(edge);
912
+ }
913
+ return out;
914
+ }
915
+ /**
916
+ * M31-optimizations Plan 2 / H4 — graph-driven transitive impact BFS.
917
+ * Replaces the previous computeTransitiveImpact, which called
918
+ * findReferencesOffline per frontier node (re-walking the project K times
919
+ * for a closure of size K — O(closure × project size)). The BFS is now pure
920
+ * Map.get on the precomputed reverse-edge graph; the only remaining per-node
921
+ * work is the pathToGuid lookup (a Map.get, not a .meta read — the asset's
922
+ * own guid was captured once during buildReverseEdgeGraph).
923
+ */
924
+ async function computeTransitiveImpactFromGraph(startGuid, startPath, graph, pathToGuid, maxDepth) {
704
925
  const affected = [];
705
926
  const seen = new Set([startPath]);
706
927
  let frontier = [];
707
928
  let truncated = false;
708
- const seed = await findReferencesOffline({
709
- assetPath: startPath || undefined,
710
- guid: startGuid,
711
- detail: "normal",
712
- projectRoot,
713
- });
714
- for (const e of seed.referencedBy) {
929
+ const seed = findReferencesFromGraph(graph, startGuid, startPath);
930
+ for (const e of seed) {
715
931
  if (seen.has(e.assetPath))
716
932
  continue;
717
933
  seen.add(e.assetPath);
@@ -723,15 +939,16 @@ async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDep
723
939
  break;
724
940
  const next = [];
725
941
  for (const nodePath of frontier) {
726
- const nodeGuid = await safeReadMetaGUID(join(projectRoot, nodePath + ".meta"));
727
- if (nodeGuid === "")
942
+ // Resolve the frontier node's guid via the precomputed pathToGuid
943
+ // index — a Map.get, no .meta read. A node whose .meta was missing/
944
+ // blank during the graph build contributes no outgoing edges here,
945
+ // matching the previous safeReadMetaGUID-based path's `if (nodeGuid
946
+ // === "") continue;` guard.
947
+ const nodeGuid = pathToGuid.get(nodePath);
948
+ if (nodeGuid === undefined)
728
949
  continue;
729
- const res = await findReferencesOffline({
730
- guid: nodeGuid,
731
- detail: "normal",
732
- projectRoot,
733
- });
734
- for (const e of res.referencedBy) {
950
+ const referencedByNode = findReferencesFromGraph(graph, nodeGuid, nodePath);
951
+ for (const e of referencedByNode) {
735
952
  if (seen.has(e.assetPath))
736
953
  continue;
737
954
  seen.add(e.assetPath);
@@ -753,33 +970,52 @@ async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDep
753
970
  }
754
971
  export async function scanIntegrityOffline(opts) {
755
972
  const issues = [];
756
- const assetsDir = join(opts.projectRoot, "Assets");
973
+ // M31-optimizations Plan 2 / H3 — single meta walk for the whole scan.
974
+ // Previously this walked the meta tree 4× (collectFiles, per-file
975
+ // safeReadMetaGUID, walkMeta for orphans, buildGUIDIndex for integrity).
976
+ // The triples carry everything the scan needs: guidByPath, allAssetPaths,
977
+ // orphan detection, and the full GUID index (no second/third walk).
978
+ const triples = await collectMetaTriples(opts.projectRoot);
979
+ // Derive guidByPath and the full GUID index from the single meta-walk pass.
980
+ // `t.assetPath` is absolute (collectMetaTriples strips the .meta suffix
981
+ // from the absolute metaPath); convert to project-relative once.
757
982
  const guidByPath = new Map();
758
- const allAssetPaths = new Set();
983
+ const fullGuidIndex = new Map();
984
+ for (const t of triples) {
985
+ const assetRel = toAssetPath(opts.projectRoot, t.assetPath);
986
+ if (t.guid !== "") {
987
+ guidByPath.set(assetRel, t.guid);
988
+ fullGuidIndex.set(t.guid, assetRel);
989
+ }
990
+ }
991
+ // allAssetPaths: every real asset on disk (not just those with .meta), used
992
+ // for orphan detection (a .meta whose companion asset is missing) and the
993
+ // assetsScanned count. The previous implementation derived this from a
994
+ // collectFiles walk; that walk is NOT a meta-walk, so keeping it does not
995
+ // regress H3 (which only consolidates the meta walks). The collectFiles
996
+ // walk is bounded-parallel (Plan 2 / M4) and shares the same readdir-order
997
+ // traversal as collectMetaTriples, so iteration order stays byte-identical.
998
+ const assetsDir = join(opts.projectRoot, "Assets");
759
999
  const assetFiles = await collectFiles(assetsDir);
1000
+ const allAssetPaths = new Set();
760
1001
  for (const absPath of assetFiles) {
761
- const assetPath = toAssetPath(opts.projectRoot, absPath);
762
- allAssetPaths.add(assetPath);
763
- const metaGuid = await safeReadMetaGUID(absPath + ".meta");
764
- if (metaGuid !== "") {
765
- guidByPath.set(assetPath, metaGuid);
766
- }
1002
+ allAssetPaths.add(toAssetPath(opts.projectRoot, absPath));
767
1003
  }
768
- const metaOnlyPaths = new Set();
769
- await walkMeta(assetsDir, async (metaPath) => {
770
- const assetPath = toAssetPath(opts.projectRoot, metaPath.slice(0, -5));
771
- if (!allAssetPaths.has(assetPath)) {
772
- metaOnlyPaths.add(assetPath);
773
- }
774
- });
775
1004
  // ---- orphan_meta: .meta whose companion asset is gone ----
776
- for (const path of metaOnlyPaths) {
777
- issues.push({
778
- path: path + ".meta",
779
- code: "orphan_meta",
780
- severity: "warning",
781
- detail: `meta file has no companion asset at ${path}`,
782
- });
1005
+ // An orphan is a triple whose companion asset path is NOT in the on-disk
1006
+ // asset file set. (Previously detected via a second walkMeta pass diffing
1007
+ // against allAssetPaths; now derived from the single triples pass + the
1008
+ // one collectFiles walk we already needed for the integrity loop.)
1009
+ for (const t of triples) {
1010
+ const assetRel = toAssetPath(opts.projectRoot, t.assetPath);
1011
+ if (!allAssetPaths.has(assetRel)) {
1012
+ issues.push({
1013
+ path: assetRel + ".meta",
1014
+ code: "orphan_meta",
1015
+ severity: "warning",
1016
+ detail: `meta file has no companion asset at ${assetRel}`,
1017
+ });
1018
+ }
783
1019
  }
784
1020
  // ---- duplicate_guid: GUID shared by 2+ assets ----
785
1021
  const pathsByGuid = new Map();
@@ -790,6 +1026,11 @@ export async function scanIntegrityOffline(opts) {
790
1026
  else
791
1027
  pathsByGuid.set(guid, [assetPath]);
792
1028
  }
1029
+ // M31-optimizations Plan 2 / H3 — preserve the previous iteration order so
1030
+ // duplicate_guid issue ordering stays byte-identical. The previous impl
1031
+ // iterated guidByPath (Map insertion order = assetFiles walk order); the
1032
+ // triples-derived guidByPath preserves that same order because triples
1033
+ // are pushed in walkMeta's readdir-order walk (matching collectFiles).
793
1034
  for (const [guid, paths] of pathsByGuid) {
794
1035
  if (paths.length < 2)
795
1036
  continue;
@@ -804,7 +1045,10 @@ export async function scanIntegrityOffline(opts) {
804
1045
  }
805
1046
  }
806
1047
  // ---- aggregated missing references (the per-read check, project-wide) ----
807
- const fullGuidIndex = await buildGUIDIndex(opts.projectRoot);
1048
+ // fullGuidIndex was populated from the single triples pass above — no
1049
+ // separate buildGUIDIndex walk. The asset-body reads below are inherent to
1050
+ // scanning (each YAML asset must be parsed to surface its missing refs);
1051
+ // this plan only collapsed the meta walks, not the body reads.
808
1052
  for (const absPath of assetFiles) {
809
1053
  const ext = extname(absPath).toLowerCase();
810
1054
  if (!OFFLINE_PARSEABLE_EXTENSIONS.has(ext))
@@ -846,6 +1090,7 @@ export async function scanIntegrityOffline(opts) {
846
1090
  byCode,
847
1091
  totalIssues: issues.length,
848
1092
  assetsScanned: allAssetPaths.size,
1093
+ // Inline tag is load-bearing — see the note on IntegrityScanResult._source.
849
1094
  _source: "offline",
850
1095
  };
851
1096
  }